微机原理与接口技术习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理第三章习题与参考答案
3.1 已知 (DS) = 1000H,(ES) = 2000H,(SS) = 3000H,(SI) = 0050H,(BX) =0100H,(BP) =0200H,数据变量DISP的偏移地址为1000。指出下列指令的寻址方式和物理地址。
(1) MOV AX,0ABH 立即寻址无
(2) MOV AX,BX 寄存器寻址无
(3) MOV AX,[l000H] 直接寻址 10000H
(4) MOV AX,DATA 直接寻址 (DS*16+DATA )
(5) MOV AX,[BX] 寄存器间接寻址 10100H
(6) MOV AX,ES:[BX] 寄存器间接寻址 20100H
(7) MOV AX,[BP] 寄存器间接寻址 30200H
(8) MOV AX,[SI] 寄存器间接寻址 10050H
(9) MOV Ax,[BX+l0] 寄存器相对寻址 1010AH
(10) MOV AX,DISP[BX] 寄存器相对寻址 11100H
(1l) MOV AX,[BX+SI] 基址变址寻址 10150H
(12) MOV AX,DISP[BX][SI] 相对基址变址寻址 11150H
3.2 分别说明下例指令采用的寻址方式和完成的操作功能。
(1) MOV CX,2000H 立即寻址将立即数2000H送CX寄存器
(2) MOV DS,AX 寄存器寻址将AX寄存器内容送DS段寄存器
(3) AND CH,[1000H] 直接寻址将[DS*16+1000H]单元的内容送CH寄存器
(4) ADD [DI],BX 寄存器间接寻址将CL寄存器的内容送[DS*16+DI]单元
(5) MOV SS:[3000H],CL 直接寻址将CL寄存器的内容送[SS*16+3000H]单元
(6) SUB [BX][SI],1000H 直接寻址将立即数1000H送[DS*16+BX+SI+50H]单元
(7) ADD AX,50H[BX][SI] 相对基址变址寻址将[DS*16+BX+SI+50H]单元的内容送AX寄存器
(8) PUSH DS 寄存器寻址将DS寄存器的内容送[SS*16+SP]单元
(9) CMP [BP][DI],AL 寄存器寻址将AL寄存器的内容送[SS*16+DI+BP]单元
3.3 判断下列指令正误,如果错误请指出原因。
(1)MOV CH,2000H 错两个操作数的长度不一致
(2)XOR DL,BH 对
(3)ADD 100,AH 错目的操作数不能为立即数
(4)MOV DS,2200H 错立即数不能直接传送给段寄存器
(5)IN AL,250H 错源操作数必须为口地址
(6)MOV [BX][SI],[DI] 错两个操作数不能同时为存储器
(7) LEA AX,BL 错源操作数必须为地址标号
(8)MOV CX,ES:BX 错寄存器寻址不能用段超越前缀
3.4 设DS=1000H,SS=2000H,AX=1000H,BX=0020H,CX=2000H,BP=0002H,SI=0010H,DI=0030H,
(10050H)=0102H, (10052H)=1E40H,(1E4F6H)=091DH。试问下列各指令执行后的结果如何?
(l) MOV CL,[BX+20H][SI] CL←[DS*16+0020H+20H+0010H]=[10050H]=02H
(2) MOV [BP][DI], CX [SS*16+0002H+0030H]=[20032H]←CX
(3) MOV AX, [BX+31H] AX←[DS*16+0020H+31H]=[10051H]=4001H
(4) LDS SI, [BX] [DI] AX←[DS*16+0020H+0030H]=[10050H]=0102H
DS←[DS*16+0020H+0030H+2]=[10052H]=1E40H
(5) MOV [SI] , BX [DS*16+0010H]=[10010H] ←BX
(5) XCHG CX, [BX+32H] CX←[10052H]=1E40H [10052H]←CX=2000H
(6) XCHG [BX+21H][SI], AX AX←[10051H]=4001H [10051H]←CX=2000H
3.5 已知(DS) = 2000H, (BX) = 0100H, (SI) = 2, (20100H) = 34H, (20l01H )= 12H, (20102H) = 78H, (20103H) = 56H, (2010AH) = 0FFH, (21200H) = 2AH, (21201H) = 4CH, (2010BH) = 0,(21202H)=0B7H, (2l203H)=65H, 试说明下列各指令执行后AX寄存器的内容。
(1) MOV AX,1200H AX=1200H
(2) MOV AX,BX AX= 0100H
(3) MOV AX,[BX] AX=[ DS*16+0100H]=[20100]=1234H
(4) MOV AX,1100H[BX] AX=[ DS*16+0100H+1100H]=[21200H]=4C2AH
(5) MOV AX,[BX][SI] AX=[ DS*16+0100H+0002H]=[20102H]=5678H
(6) MOV AX,[BX+SI+1100H] AX=[ DS*16+0100H+0002H+1100H]=[21202H]=65B7H
(7) MOV AX,[1200H] AX=[ DS*16+1200H]=[21200H]=4C2AH
(8) MOV AX,[BX+10] AX=[ DS*16+0100H+0010H=[2010AH]=XXFFH
3.6 连续执行以下指令,根据指令执行结果填空。
MOV AX, 1234H AL= 34H AH= 12H CF= 0
MOV ES, AX ES= 1234H AH= 12H CF= 0
ADC AL, AH AL= 12H AH= 12H CF= 0
DEC AX, AL= 11H AH= 12H CF= 0
MOV DX, 256 DL= 00H DH= 01H CF= 0
SUB AX, DX AL= 11H AH= 11H CF= 0
3.7 已知标志寄存器各标志位为0,每条指令执行前AX=FFFFH,BX=8000H,CX=0000H,试分析单独执行下列单条指令后标志寄存器CF、AF、ZF、SF、OF的状态。
(1)MOV AX, BX CF=0、AF=0、ZF=0、SF=1、OF=0
(2)XOR AX, AX CF=0、AF=0、ZF=1、SF=0、OF=0
(3)MOV AX, 0001H CF=0、AF=0、ZF=0、SF=0、OF=0
(4)ADD AX, 00001H CF=1、AF=1、ZF=1、SF=0、OF=0
(5)MOV CX, 0FFFFH CF=0、AF=0、ZF=0、SF=1、OF=0
(6)DEC CX CF=0、AF=1、ZF=0、SF=1、OF=0
(7)MOV BX, 0 CF=0、AF=0、ZF=1、SF=0、OF=0
(8)SUB BL, 80H CF=1、AF=1、ZF=0、SF=1、OF=0