汇编语言程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《汇编语言程序设计》模拟题 1
一、填空:
1、CPU的指令指针寄存器为: IP ,它与 CS 寄存器联用确定下一条指令的物理地址。
2、若要将所有数据及代码都放在一个段内,应建立 TINY 存储模型。
3、操作数:ES:TABLE[DI]、FEES[EBX*2]、MSAK[EAX][EBX]分别采用直接变址、比例变址、相对基址变址寻址方式。
4、读取当前光标位置可使用BIOS INT 10H的 3 号功能调用,作为出口参数,光标的行号及列号将从 DX 寄存器中获得。
5、通常用CPU的 DX 寄存器间接寻址端口地址。
6、如果在宏定义体设置局部标号,应使用 LOCAL 伪操作以避免在宏展开时出现标号的多重定义。
7、设(CS)=2A31H,(DS)=9300H,(SS)=25F0H,(BP)=0131H,(SI)=0110H,(DI)=0102H,则指令MOV AX,[BP+SI+8]的源操作数有效地址为_____0249H_____,物理地址为____26149H____。
8、设(AX)=1000H,(BX)=2340H,则在执行了指令CMP AX,BX后,CF标志值为_____1______,ZF标志值为______0________。
9、外设的发出中断请求若被CPU响应,有两个条件必不可少,即该外设的中断请求不被屏蔽和 CPU允许响应中断。
10、显示字符串可使用DOS 9号功能,它要求被显示的字符串最后一个字符必须是$。
11、中断发生时,保存现场将 IP 、CS 、 FLAGS 寄存器的内容存入堆栈。
二、选择题
1、下列寄存器中,( B )可作为基址寄存器。
A、AX
B、BX
C、CX
D、DX
2、下列指令序列中,清除当前中断请求(EOI)命令为:( A )
A、MOV AL,20H
B、MOV AL,20H
C、MOV AL,21H
D、MOV AL,21H
OUT 20H,AL IN AL,20H OUT AL,21H IN AL,
21H
3、段定义时,使用( D )定位类型,则该段必须从小段的边界开始。
A、BYTE
B、WORD
C、DWORD
D、PARA
4、若:(BX)=4336H,(CX)=0136H指令:SUB BX,CX 执行后,SF、ZF、OF、CF标志分别为( A )
A、0,0,0,0
B、0,1,0,0
C、1,0,0,0
D、0,0,0,1
5、若:FEES DW 10 DUP(100,?)
指令:MOV CX,LENGTH FEES执行后,CX的内容为:( c )
A、1000
B、1
C、10
D、2000
三、判断下列指令及伪指令是否正确(在括号中打“√”或“×”):
1、DIV 20H (×)
2、XCHG BX,ES (×)
3、CMP [BX],TABLE[SI] (×)
4、IN AL,DX (√)
5、MOV BYTE PTR[BX],25H (√)
6、MOV CS,0200H (×)
7、RET 8 (√)
8、LEA TABLE,BX (×)
9、ACL1 MACRO A,B,C (×)
┆
ACL1 ENDM
10、NEWP PROC (√)
┆
NEWP ENDP
四、完成下列指令序列:
1、将数据段中字串STRING1(长度为N),传送到附加段中以BUFF为首地址的缓冲区:
┆
MOV SI,
MOV DI,
MOV CX, N
CLD
REP
2、分别用一条语句实现下述指明的功能
(1)变量AYD存放的地址指针送ES和SI
(2)AX的内容加1,要求不影响CF
解:1、OFFSET STRING1 OFFSET BUFF MOVSW
2、LES SI,AYD INC AX
五、分析计算题:
1.设(AX)=201BH,(BX)=110CH,(DI)=0001H,(DS)=4000H,(4110CH)=0AH,(4110DH)=81H,(4110EH)=70H;
则:① MOV AX,[BX]指令执行后,(AX)=;
② MOV BH,BYTE PTR[BX+DI+1],指令执行后,(BX)= .
2.
MOV AX,6540H
MOV DX,3210H
MOV CL,04
SHL AX,CL
MOV BL,AH
OR DL,BL
试问上述程序段运行后,
(AX)=
(BL)=
(DX)=
3、
DATA1 DW 1000H
DATA2 DW 2000H
┆
PUSH DATA1
PUSH DATA2
POP DATA1
POP DATA2
问:①上述程序段执行后,(DATA1)=,(DATA2)= .
②设执行前(SP)=200H,执行后(SP)= .
解:1、810AH 700CH
2、5400H 54H 3265H
3、2000H 3000H 200H
六:叙述题:
调用程序和子程序之间参数传递有哪几种主要方式? 各自的特点是什么?
答:三种方式:寄存器传递方式、存储单元传递方式、堆栈传递方式
其中,寄存器传递方式快捷而且方便,但参数个数不能过多;存储单元传递对参数个数无要求, 堆栈传递方式对参数个数无要求,适用于子程序多重嵌套及递归调用.