发布时间 : 星期三 文章《微型计算机原理与接口技术》第二版问题详解张荣标更新完毕开始阅读
文档
5.请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、和PF的状态:
MOV AL, 0AH ; 各标志位保持不变
AND AL, 0FH ; ZF=0 SF= 0 PF=1
OR AL, 04BH ; ZF=0 SF= 0 PF=1
XOR AL, AL ; ZF=1 SF= 0 PF=1
6.请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态:
MOV AL, 54H ; 各标志位保持不变
ADD AL, 4FH ; CF=0 ZF=0 SF= 1 OF=1 AF=1 PF=1
CMP AL, 0C1H ; CF=1 ZF=0 SF=1 OF=0 AF=0 PF=1
SUB AL, AL ; CF=0 ZF=1 SF= 0 OF=0 AF=0 PF=1
INC AL ; CF=0 ZF=0 SF= OF=0 AF=0 PF=0
7.(DS)=3000H,(SS)=1500H,(SI)=010CH,(BX)=0870H,(BP)=0500H,指出下列指令的目的操作数字段寻址方式,并计算目的操作数字段的物理地址。
(1) MOV [BX], CX
目的操作数为寄存器间接寻址
目的操作数的物理地址为:DS×16+0870H=30870H
(2) MOV [1000H], BX
目的操作数为直接寻址
目的操作数的物理地址为:DS×16+1000H=31000H
(3) MOV [BP], BX
目的操作数为寄存器间接寻址
目的操作数的物理地址为:SS×16+0500H=15500H
文档
(4) MOV [BP+100], CX
目的操作数为寄存器相对寻址
目的操作数的物理地址为:SS×16+0500H+64H=15564H
(5) MOV [BX+100][SI], CX
目的操作数为相对基址加变址寻址
目的操作数的物理地址为:
DS×16+0870H+64H+010CH=309E0H
8.指出如下指令哪些是错误的,并说明原因:
(1)MOV [SP], BX
错。
(2)MOV CS, BX
错。CS寄存器不能赋值,要由装入程序确定
(3)POP CS
错。CS寄存器不能赋值,要由装入程序确定
(4)JMP BX 对。
(5)SUB [BP+DI-1000],AL
错。偏移量不能为负。但编译能通过。
(6)SHL AX,CX
错。源操作数最大为255,只能是CL,不能是CX
(7)XCHG ES:[BX],AL 对。
(8)LEA AX,[BX+DI]
文档
对。
9.已知(SS)=2800H,(SP)=0010H,(AX)=0FA0H,(BX)=1002H,下列指令连续执行,请指出每条指令执行后SS、SP、AX、BX寄存器中的容是多少?
PUSH AX ;(SS)=2800H,(SP)=000EH,(AX)=0FA0H,(BX)=1002H
PUSH BX ;(SS)=2800H,(SP)=000CH,(AX)=0FA0H,(BX)=1002H
POP AX ;(SS)=2800H,(SP)=000EH,(AX)=1002H,(BX)=1002H
POP BX ;(SS)=2800H,(SP)=0010H,(AX)= 1002H,(BX)= 0FA0H
10.阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。
(1)MOV BL,26H
MOV AL,95H
ADD AL,BL
DAA
AL= 21H BL= 26H CF=1
(2)MOV AX,1E54H
STC
MOV DX,95
XOR DH,0FFH
SBB AX,DX
AX= 1EF5H CF=1
11.已知程序段如下:
CMP AX,BX
JNC K1
文档
JNO K2
JMP K3
假设有以下三组AX、BX值,那么在程序执行后,分别转向哪里?
(1)(AX)=0E301H,(BX)=8F50H
转向K1
(2)(AX)=8F50H,(BX)=0E301H
转向K2
(1)(AX)=147BH,(BX)=80DCH
转向K3