资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
微 计 算 机 原 理 ( 第 2 版 ) 第 三 章 课 后 习 题 答 案 解 析 精品文档 收集于网络,如有侵权请联系管理员删除 第三章 80 x86 指令系统 3-1 指令由 操作码 字段和 操作数 字段组成。 8086的指令长度在 16字节 范围。 3-2 分别指出下列指令中源操作数和目的操作数的寻址方式。若是存储器寻 址,使用表达式表示出EA= ? PA=? (1) MOV SI, 2100H (2) MOV CX, DISPBX (3) MOV SI, AX (4) ADC ZX, BXSI (5) AND AX, DX (6) MOV AX, BX+10H (7) MOV AX, ES:BX (8)MOV AX, BX+SI+20H (9) MOV BP, CX (10) PUSH DS 解: 源操作数寻址目的操作数寻址EA PA 1) MOV SI, 2100H 立即数寻址寄存器 (2) MOV CX, DISPBX 寄存器相对寻址寄存器BX+SISP (DS)*16+(BX+DISP) (3) MOV SI, AX 寄存器寻址寄存器间接SI (DS)*16+(SI) (4) ADC ZX, BXSI 基址变址寻址寄存器BX+SI (DS)*16+(BX)+(SI) (5) AND AX, DX 寄存器寻址寄存器 (6) MOV AX, BX+10H 寄存器相对寻址寄存器BX+DISP (DS)*16+(BX)+10H (7) MOV AX, ES:BX 带段超越寄存器寻址寄存器BX (ES)*16+(BX) (8 )MOV AX, BX+SI+20H 相对基址变址寻址寄存器BX+SI+20H (DS)*16+(BX)+(SI)+2 0H (9) MOV BP, CX 寄存器寻址寄存器间接BP (SS)*16+(BP) (10) PUSH DS 固定寻址寄存器SP (SS)*16+(SP) 3-3 已知 8086 中一些寄存器的内容和一些存储器单元的内容如图3-1 所示, 试指出下列各条指令执行后,AX中的内容。 精品文档 收集于网络,如有侵权请联系管理员删除 (1) MOV AX, 2010H (2) MOV AX, BX (3) MOV AX, 1200H (4) MOV AX, BX (5) MOV AX, 1100HBX (6) MOV AX, BXSI (7) MOV AX, 1100HBX+SI (8) MOVLEA AX, SI 解:(1)(AX )=2010H (2)(AX )=0100H (3)(AX )=4C2AH (4) (AX )=3412H (5)(AX )=4C2AH (6)(AX )=7856H (7)(AX )=65B7H (8) (AX )=0002H M 30100H 12H 30101H 34H 30102H 56H 30103H 78H 精品文档 收集于网络,如有侵权请联系管理员删除 图 3-1 3-4 已知( AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH ,(PORT+1)=45H, 执行下列指令后,指出结果等于多少? 解: (1)OUT DX, AL (0380H)=40H (2)OUT DX, AX (380H)=40H (381h)=20H (3)IN AL, PORT (AL)=1FH (4)IN AX, 80H (AX)=451FH (5)OUT PORT1, AL (PORT1)=40H (6)OUT PORT1, AX (PORT1)=2040H 31200H 2AH 31201H 4CH 31202H B7H 31203H 65H CPU BX 0100H SI 0002H DS 3000H 精品文档 收集于网络,如有侵权请联系管理员删除 3-5 已知: (SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213,试画出下列指 令执行到位置 1 和位置 2 时堆栈区和 SP指针内容的变化示意图。图中应标出存 储单元的实际地址PA 。 PUSH AX PUSH CX ;位置 1 POPF ;位置 2 解:已知 (SS)=0A2F0H ,指令顺序依次编号为 、,示意图如图所示: (SS)=0A2F0 H 0A2FBCH 13H (SP)-4=00BCH ( 位置 1) F2H 0A2FBEH 31H (SP )-2=00BEH (SP)+2=00BCH +0002H=00BEH ( 位置 2) 8BH 0A2FC0H (SP )=00C0H 3-6 识别下列指令的正确性,对错误的指令,说明出错的原因。 (1) MOV DS, 100 (2) MOV 1000H, 23H (3) MOV 1000H,2000H (4) MOV DATA, 1133H (5) MOV 1020H, DX (6) MOV AX, 0100H+BX+BP 精品文档 收集于网络,如有侵权请联系管理员删除 (7) MOV CS, AX (8) PUSH AL (9) PUSH WORD PTRSI (10) IN AL, 80H (11) OUT CX, AL (12) IN AX, 380H (13) MOV CL, 3300H (14) MOV AX, 2100HBP (15) MOV DS, ES (16) MOV IP, 2000H (17) PUSH CS (18) POP CS (19) LDS CS, BX (20) MOV GAMMA, CS 解: (1),不能对段寄存器送立即数 (2),存储单元类型不正确 (3), MOV 不能实现两个存储单元 间 直接传送 (4),段名不能作目的操作数 (5),立即数不能作目的操作数 (6),基址寄存器 BX和 BP只能使 用其 中一个 (7), CS不能用作目的操作数 (8),堆栈操作作为字操作 AL应 改为 AX (9) (10), 80H为输入端口号不加方括 号 (11),应输出到端口而不是通用 寄存器 (12),用DX做间址寄存器 380H 应存 DX (13),类型不匹配 (14) (15),两个段寄存器间不能直接 传送 (16), IP 不能直接用作目的操作 数 精品文档 收集于网络,如有侵权请联系管理员删除 (17) (18), CS不能做目的操作数 (19),目的操作数应是通用寄存 器而不 能是段寄存器 CS (20),符号名不能作为目的操作 数 3-7 已知存储器数据段中的数据如图3-3 所示。阅读下列的两个程序段后,回 答: 1. 每个程序段的运行结果是什么? 2. 两个程序段各占多少字节的内容,执行时间是多少? (1) LES SI, NUM1 MOV AX, SI ADD AX, 4SI MOV 8SI, AX ADD SI, 2 MOV AX, SI ADC AX, 4SI MOV 8SI, AX (2) MOV AX, NUM1 ADD AX, NUM2 MOV SUM, AX MOV AX, NUM1+2 ADC AX, NUM2+2 MOV SUM+2 , AX 解:1、运行结果如下: (1) 0AC6863A0H (2) 0AC6863A0 2、时钟周期字节数 精品文档 收集于网络,如有侵权请联系管理员删除 (1) LES SI, NUM1 2+EA 24 MOV AX, SI 10 3 ADD AX, 4SI 9+EA 24 MOV 8SI, AX 10 3 ADD SI, 2 4 34 MOV AX, SI 10 3 ADC AX, 4SI 9+EA 24 MOV 8SI, AX 10 24 (2) MOV AX, NUM1 10 3 ADD AX, NUM2 9+EA 24 MOV SUM, AX 9+EA 24 MOV AX, NUM1+2 9+EA 24 ADC AX, NUM2+2 9+EA 24 MOV SUM+2 , AX 9+EA 24 图 3-3 3-8 已知数据如图 3-3 所示,数据的低位在前,按下列要求编写程序段: 1. 完成 NUM1 和单元 NUM2 两个字数据相加,和存放在NUM1 中。 2. 完成 NUM1 单元开始的连续 4 个字节数据相加,和不超过一字节,存放SUM 单元。 M NUM1 48H DS 41H 16H 28H NUM2 58H 22H 52H 84H SUM 精品文档 收集于网络,如有侵权请联系管理员删除 3. 完成 NUM1 单元开始的连续 8 个字节数据相加,和16 位数,放在 SUM 和 SUM+1 两个单元(用循环)。 4. 完成 NUM1 和 NUM2 的双倍精度字数据相加,和放在NUM2 开始的字单元中。 解: 1、CLC LEA SI, NUM1 MOV AX, WORD PTR SI ADD AX, WORD PTR NUM2 MOV WORD PTR SI, AX MOV AX, WORD PTR SI+2 ADC AX, WORD PTR NUM2+2 MOV WORD PTR SI+2, AX HLT 2、LEA SI, NUM1 MOV AL, SI ADD AL, 1SI ADD AL, 2SI ADD AL, 3SI MOV SUM, AL HLT 精品文档 收集于网络,如有侵权请联系管理员删除 3 、 CLC CLD LEA SI, NUM1 MOV AL, SI MOV AH, 0 MOV CX, 7 XOR BH, BH AGA: MOV BL, 1SI ADC AX, BX INC SI DEC CX JNZ AGA MOV SUM, AX HLT 4、LEA SI, NUM1 LEA DI, NUM2 MOV AX, SI ADD AX, DI MOV DI, AX MOV AX, 2SI 精品文档 收集于网络,如有侵权请联系管理员删除 ADC AX, 2DI MOV 2DI, AX 3-9 已知的 BCD 数如图 3-3 所示,低位在前,按下列要求编写计算BCD数据 (为组合型 BCD )的程序段。 1. 完成从 NUM1 单元开始的连续 8 个组合型 BCD 数相加,和(超过一字节)放在 SUM 和 SUM+1 两个单元中。 2. 完成 NUM1 单元和 NUM2 单元的两个 BCD 数相减,其差存入SUM 单元,差 =?, (CF )=? 解: 1、 CLC CLD LEA SI, NUM1 MOV CX, 7 MOV AH, 0 MOV AL, SI AGA: INC SI ADC AL,SI DAA LOOP AGA MOV SUM, AL MOV SUM+1, AH 精品文档 收集
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号