《汇编语言程序设计》模拟题
一、填空:
1、CPU的指令指针寄存器为: ,它与 寄存器联用确定下一条指令的物理地址。
2、若要将所有数据及代码都放在一个段内,应建立 存储模型。
3、操作数:ES:TABLE、FEES、MSAK分别采用 、
、 寻址方式。
4、读取当前光标位置可使用BIOS INT 10H的 号功能调用,作为出口参数,光标的行号及列号将从 寄存器中获得。
5、通常用CPU的 寄存器间接寻址端口地址。
6、如果在宏定义体设置局部标号,应使用 伪操作以避免在宏展开时出现标号的多重定义。
7、设(CS)=2A31H,(DS)=9300H,(SS)=25F0H,(BP)=0131H,(SI)=0110H,(DI)=0102H,则指令MOV AX,的源操作数有效地址为________________,物理地址为_________________。
8、设(AX)=1000H,(BX)=2340H,则在执行了指令CMP AX,BX后,CF标志值为___________,ZF标志值为______________。
9、外设的发出中断请求若被CPU响应,有两个条件必不可少,即
和 。
10、显示字符串可使用DOS 9号功能,它要求被显示的字符串最后一个字符必须是 。
11、中断发生时,保存现场将 、 、 寄存器的内容存入堆栈。
二、选择题
1、 下列寄存器中,( )可作为基址寄存器。
A、AX B、BX C、CX D、DX
2、 下列指令序列中,清除当前中断请求(EOI)命令为:( )
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、 段定义时,使用( )定位类型,则该段必须从小段的边界开始。
A、BYTE B、WORD C、DWORD D、PARA
4、 若:(BX)=4336H,(CX)=0136H指令:SUB BX,CX 执行后,SF、ZF、OF、CF标志分别为( )
A、0,0,0,0 B、0,1,0,0 C、1,0,0,0 D、0,0,0,1
5、 若:FEESDW 10 DUP(100,?)
指令:MOV CX,LENGTH FEES执行后,CX的内容为:( )
A、1000 B、1 C、10 D、2000
三、判断下列指令及伪指令是否正确(在括号中打“√”或“×”):
1、DIV20H ( )
2、XCHG BX,ES ( )
3、CMP ,TABLE ( )
4、INAL,DX ( )
5、MOVBYTE PTR,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、LESSI,AYD INC AX
五、分析计算题:
1. 设(AX)=201BH,(BX)=110CH,(DI)=0001H,(DS)=4000H,(4110CH)=0AH,(4110DH)=81H,(4110EH)=70H;
则:① MOV AX,指令执行后,(AX)= ;
② MOV BH,BYTE PTR,指令执行后,(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
六:叙述题:
调用程序和子程序之间参数传递有哪几种主要方式? 各自的特点是什么?
参考答案:
答:三种方式:寄存器传递方式、存储单元传递方式、堆栈传递方式
其中,寄存器传递方式快捷而且方便,但参数个数不能过多;存储单元传递对参数个数无要求, 堆栈传递方式对参数个数无要求,适用于子程序多重嵌套及递归调用.
页:
[1]