首页 计算机原理与应用答案(清华大学出版社 3版 李继灿)

计算机原理与应用答案(清华大学出版社 3版 李继灿)

举报
开通vip

计算机原理与应用答案(清华大学出版社 3版 李继灿)计算机原理与应用答案(清华大学出版社 3版 李继灿) 8086第三章作业 3-11在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结 束地址 (1)1000H 10000H-1FFFFH (2)1234H 12340H-2233FH (3)E000H E0000H-EFFFFH (4)AB00H AB000H-BAFFFH 3-12对于下列CS:IP组合,计算出要执行的下条指令存储器地址。 (1)CS=1000H和IP=2000H 答:下条指令存储器地址:12000H (2)CS=240...

计算机原理与应用答案(清华大学出版社 3版 李继灿)
计算机原理与应用答案(清华大学出版社 3版 李继灿) 8086第三章作业 3-11在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结 束地址 (1)1000H 10000H-1FFFFH (2)1234H 12340H-2233FH (3)E000H E0000H-EFFFFH (4)AB00H AB000H-BAFFFH 3-12对于下列CS:IP组合,计算出要执行的下条指令存储器地址。 (1)CS=1000H和IP=2000H 答:下条指令存储器地址:12000H (2)CS=2400H和IP=1A00H 答:下条指令存储器地址:25A00H (3)CS=1A00H和IP=B000H 答:下条指令存储器地址:25000H (4)CS=3456H和IP=ABCDH 答:下条指令存储器地址:3F12DH 3-37 指出下列指令源操作数的寻址方式 (1) MOV AX,1200H;立即数寻址 (2)MOV BX,[1200H];直接寻址 (3)MOV BX,[SI];变址寻址 (4)MOV BX,[BX+SI+1200];相对基变址寻址 (5)MOV [BX+SI],AL;寄存器寻址 (6)ADD AX,[BX+DI+20H];相对基变址寻址 (7)MUL BL ;寄存器寻址 (8)JMP BX ;间接寻址 (9)IN AL,DX ;寄存器间接寻址 (10)INC WORD PTR[BP+50H] ;相对基址寻址 小结:虽然对存储器的访问指令、输入/输出指令(IN指令和OUT指令)、 跳转指令(JMP指令)都有直接寻址和间接寻址,但是形式是有很大差别的: 1. 直接寻址: (1) 对于存储器的访问用方括号括起来的二进制数, 如:MOV BX,[1200H] (2) 对于输入/输出指令(IN指令和OUT指令)用二进制数 如:IN AX,8FH 又如: OUT 78H,AL (3) 对于跳转指令(JMP指令)是以目标标号为直接地址的 如: JMP ADDR1 2.间接寻址: (1)对于存储器的访问有分为基址寻址、变址寻址、基址加变址寻址 以及带位移量的所谓相对基址寻址、相对变址寻址、相对基址加变址寻 址 如:MOV AX,[BP] (2) 对于输入/输出指令用DX做间接寻址寄存器 第 1 页 共 8 页 如:IN AX,DX 又如: OUT DX,AL (3) 跳转指令直接写明寄存器即可 (段内) 如: JMP BX 段间需组合:如: JMP DWORD PTR [BX+ADDR1] 3-38指出8086/8088下列指令中存储器操作数地址的计数 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式。 (1) MOV AL,[DI] 答:存储器操作数地址的计数表达式为:(DS)×16+(DI) (2) MOV AX,[BX+SI] 答:地址的计数表达式为:(DS)×16+(BX)+(SI) (3) MOV 8[BX+SI],AL 答:地址的计数表达式为:(DS)×16+8+[(BX)+(SI)] (4) ADD AL,ES:[BX] 答:地址的计数表达式为:(ES)×16+(BX) (5) SUB AX,[1000H] 答:地址的计数表达式为:(DS)×16+1000H (6) ADC AX,[BX+DI+2000H] 答:地址表达式为:(DS)×16+(BX)+(DI) +2000H (7) MOV CX,[BP+SI] 答:地址的计数表达式为:(SS)×16+(BP)+(SI) (8) INC BYTE PTR(DI)答:地址表达式为:(DS)×16+(DI) 1 CS 2 DSBPSS SIDSDI ES 3 BP SS 4 38-4DI ES 3-39 指出8086/8088下列指令的错误何在? 1.MOV [SI],IP 答:IP不可访问: 2.MOV CS,AX 答:CS不可访问: 3.MOV BL,SI+2 答:类型不匹配,或者变址寻址寄存器未加方括号。应写 成MOV BL,[SI+2]或MOV BX,SI+2 4.MOV 60H,BL 答:立即数不能做目标操作数。 5.PUSH 2400H 答:PUSH的源操作数不能是立即数。 6.INC [BX] 答:对于间接寻址的存储单元加1指令,数据的长度必须用BYTE PTR、WORD PTR或DWORD PTR类型伪指令加以说明, 否则,汇编程序不能确定是对字节、字还是双字加1。(P92) 7.MUL –60H 答:无符号乘法指令,操作数不能用立 即数。 8.ADD [2400H],2AH 答:[2400h]前要加类型说明 9.MOV [BX],[DI] 答:在MOV指令中,两个操作数不能都是存储器操 作数。 第 2 页 共 8 页 10.MOV SI,AL 答:两个操作数的长度不一样,类型不匹配。 有的同学所答非所问,问错在哪里,却作成了改成正确的。 3.40 MOV CS,AX指令会带来什么错误? 答:这样做会影响后面指令,因为CS的改变不能按要求执行。提示遇到了无效 指令。 3-41 阅读下列程序段,指出每条指令执行以后有关寄存器的内容是多少? MOV AX,0ABCH ;AX寄存器的内容是:0ABCH DEC AX ;AX寄存器的内容是:0ABBH AND AX,00FFH ;AX寄存器的内容是:00BBH MOV CL,4 ;CL寄存器的内容是:04H SAL AL,1 ;AL寄存器的内容是:76H MOV CL,AL ;CL寄存器的内容是:76H ADD CL,78H ;CL寄存器的内容是:0EEH PUSH AX ;(SS*16+SP)=0076H,AX寄存器的内容是:0076H POP BX ;BX寄存器的内容是:0076H 3.42 指出RET与IRET两条指令的区别,并说明各用在什么场合? 答:(1)RET与IRET是两条返回主程序的返回指令,但RET是与过程(子程序)调用指令CALL对应使用的过程返回指令,而IRET是与中断指令INT n对应使用的中断返回指令。 (2)RET指令应安排在过程的出口即过程的最后一条指令处,它的功能是从堆 栈顶部弹出由CALL指令压入的断点地址值,迫使CPU返回到调用程序的断点去继 续执行。 IRET指令总是安排在中断服务程序的出口处,由它控制从堆栈中弹出程序断点 送回CS和IP中,弹出标志寄存器内容送回F中,迫使CPU返回到断点去继续执行后续程序。 3.43 说明MOV BX,DATA和MOV BX,OFFSET DATA指令之间的区别? 答:MOV BX,DATA直接将DATA的值赋给BX,MOV BX,OFFSET DATA是将DATA在段内的偏移地址赋给BX. 3.44 给定DS=1100H,BX=0200H,LIST=0250H,SI=0500H。试指出下面各条指令寻址 存储器的地址。 (1) MOV LIST[SI],EDX ; PA=DS*16+LIST+SI=11750H (2) MOV CL,LIST[BX+SI];PA=DS*16+LIST+BX+SI=11950H (3) MOV CH,[BX+SI];PA=DS*16+BX+SI=11700H (4) MOV DL,[BX+100H];PA=DS*16+BX+100H=11300H 3.45 假定PC机存储器地地址区有关单元的内容如下: (20H)=3CH,(21H)=00H,(22H)=86H,(23H)=0EH,且CS=2000H,IP=0010H,SS=1000H,SP=0100H,FLAGS=0240H,这时若执行INT 8指令, 第 3 页 共 8 页 试问: (1) 程序转向从何处执行(用物理地址回答)? (2) 栈顶6个存储单元的地址(用逻辑地址回答)及内容分别是什么? 答:(1)程序转向0E89CH处执行,中断服务程序的入口地址在00020H-00023H单元。 (2) 栈顶6个单元的内容 1000H:00FEH 0240H 1000H:00FCH 2000H 1000H:00FAH 0012H 注:执行INT 8指令(2个字节)使F寄存器内容先入栈,断点再入栈保护,同时中 断服务程序的入口地址赋值给 CS和IP 3-46 设SP=2000H,AX=3000H,BX=5000H,执行下列片段程序后,SP=?AX=?BX=? PUSH AX PUSH BX POP AX 答:执行以上片段程序后,SP=1FFEH;AX=5000H;BX=5000H 8086/808851PUSH SP-2 SP POP SP+2 SP 3-48 设AX=5555H,BX=FF00H,执行下列片段程序后, AX=?BX=?CF=? AND AX,BX ;AX=5500H XOR AX,AX ;AX=0000H NOT BX ;BX=00FFH 答:执行以上片段程序后,AX=0000H;BX=00FFH;CF=0 CF CF 3-50 若DS=3000H,BX=2000H,SI=0100H,ES=4000H,计算出下述各条指令中存 储器操作数的物理地址。 1. MOV [BX],AH 答:存储器操作数物理地址为:(DS)×16+(BX)=32000H 2.ADD AL,[BX+SI+1000H] 答:物理地址为:(DS)×16+(BX+SI+1000H)=33100H 3.MOV AL,[BX+SI] 答:物理地址为:(DS)×16+(BX)+(SI)=32100H 4.SUB AL,ES:[BX] 答:物理地址为:(ES)×16+(BX)=42000H 3-52 选用最少指令,实现下述要求的功能。 1. AH的高4位清零。 AND AH,0FH 2. AL的高4位取反。 XOR AL,0F0H 3. AL的高4位移到低4位,高4位清零。 (一) MOV CL,4 SHR AL,CL ;逻辑移位,补0 (二)MOV CL,4 第 4 页 共 8 页 ROR AL,CL AND AH,0FH 4. AH的低4位移到高4位,低4位清零。 (一) MOV CL,4 SHL AH,CL ;逻辑移位,补0 (二) MOV CL,4 ROL AH,CL AND AL,0F0H 3.53设BX=6D16H,AX=1100H,执行指令后的结果 MOV CL,06H ;CL=6 ROL AX,CL ;AX=4004H SHR BX,CL ;BX=01B4H 3-54 设初值AX=0119H,,执行下列程序段后, AX=? MOV CH,AH ;(CH)=01H ADD AL,AH ;(AL)=1AH ,CF=0 DAA ;(AL)=20H ,CF=0 XCHG AL,CH; ;(CH)=20H ,AL=01H ,不影响标志位状态 ADC AL,34H ;(AL)=35H DAA ;(AL)=35H MOV AH,AL ;(AH)=35H MOV AL,CH ;(AL)=20H HLT (AX)=3520H 只写最后结果也行,但如果写错了,中间的过程起作用。 3.55 AX=6264H,CX=0004H,执行指令段后=? AND AX,AX;(AX)=6264H JZ DONE ;ZF=0,顺序执行 SHL CX,1;(CX)=0008H ROR AX,CL;(AX)=6462H DONE:OR AX,1234H;(AX)=7676H 3-56 写出可使AX清零的几条指令。 1. MOV AX,0000H 2. AND AX,0000H 3. XOR AX,AX 4. SUB AX,AX 3.59 哪个段寄存器不能从堆栈弹出? 答:CS段寄存器的内容可以压入堆栈,却不能从堆栈弹出。P84 3-62 若AX=1001H,DX=20FFH,当执行ADD AX,DX指令以后,请列出和数及标志寄 第 5 页 共 8 页 存器中每个位的内容。 1 + 1 0-----3100H CF=0;AF=1;SF=0;ZF=0;OF=0 PF=0(只与 运算结果的低8位有关) 3.76 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 一个程序段,将AX和BX中的8位BCD数加CX和DX中的8位BCD数(AX 和CX是最高有效寄存器),加法以后的结果存入CX和DX中。 PUSH AX PUSH CX MOV AX,DX ADD AL,BL;低字节相加 DAA ;低字节调整 MOV CL,AL MOV AL,AH ADC AL,BH; 高字节相加 DAA ;高字节调整 MOV DH,AL MOV DL,CL;(BX)+(DX)和放到DX中 POP CX POP AX ADC AL,CL;低字节相加 DAA ;低字节调整 MOV CL,AL MOV AL,AH ADC AL,CH; 高字节相加 DAA ;高字节调整 MOV CH,AL;(AX)+(CX)和放到CX中 3-81 设计一个程序段,将AX中的最右4位置1,将AX中的最左3位清0,并且把 AX中的7、8、9位取反。 OR AX,000FH AND AX,1FFFH XOR AX,0380H; 01C0H 0000 0011 1000 0000 0000 0001 1100 0000 3.82 选择正确的指令以实现下列任务 (1)DI右移3位,再把0移入最高位 (2)AL中的所有位左移1位,使0移入最低位 (3)AL循环左移3位 (4)DS带进位位循环右移1位 第 6 页 共 8 页 答:(1)MOV CL,3 SHR DI,CL (2)SAL AL,1 (3)MOV CL,3 ROL AL,CL (4)RCR DX,1 3-86 用串操作指令设计实现如下功能的程序段:先将100个数从6180H处搬移到 2000H处;再从中检索出等于AL中字符的单元,并将此单元置换成空格符。 CLD MOV CX,100 MOV SI,6180H MOV DI,2000H REP MOVSB ;至此完成了将100个数从6180H处搬移到2000H处 MOV CX,100 MOV DI,2000H MOV AL,DATA CH1:JCXZ STO REPNE SCASB JZ CH2 JMP CH1 CH2:MOV AH,20H DEC DI MOV [DI],AH ;MOV BYTE PTR[DI],20H INC DI JMP CH1 STO:HLT 方法2 MOV SI,6180H MOV DI,2000H MOV CX,100 CLD LP1:LODSB STOSB LOOP LP1 MOV AL,DATA MOV CX,100 MOV DI,2000H 第 7 页 共 8 页 CH1:JCXZ STO REPNE SCASB JZ CH2 JMP CH1 CH2:MOV AH,20H DEC DI MOV [DI],AH ; MOV BYTE PTR[DI],20H INC DI JMP CH1 STO:HLT 3.88 带参数的返回指令用在什么场合?设栈顶地址为2000H,当执行RET 0008后, 问SP的值是多少? 答:(1)带参数的返回指令RET用在调用程序需要通过堆栈向过程传送一些参数 的场合,并在过程运行中要使用这些参数,一旦过程执行完毕,这些参数应弹出堆 栈作废。RET指令放在被调用的过程末尾处。 (2)SP=2+8或SP=4+8取决于子程序是近过程还是远过程,先从堆栈弹出断点, 再从堆栈弹出8个字节并丢弃之。即SP=200AH或SP=200CH 3.89 在执行IRET 和RET时,具体操作内容有什么区别? 答:执行中断返回指令IRET时,具体操作内容为: (1)先将由SP所制定的堆栈内容弹出至IP,恢复IP值: IP (SP),SP (SP)+2 (2)再将由SP所制定的堆栈内容弹出至CS,恢复CS值: CS (SP),SP (SP)+2 (3)最后将SP制定的堆栈内容弹出至FLAGS: FLAGS (SP),SP (SP)+2 执行过程返回指令RET时,具体操作内容为:同上(1)(2)步内容,无(3)步 操作 3.90 INT 40H指令的中断向量存储在哪些地址单元?是用图解说明中断向量的含义 和具体内容,并指出它和中断入口地址之间是什么关系? 答:因为40H*4=0100H,可知其中断向量存储在0100H-0103H。 0000H:0100H IPL 0000H:0100H IPH 0000H:0100H CSL 0000H:0100H CSH 第 8 页 共 8 页
本文档为【计算机原理与应用答案(清华大学出版社 3版 李继灿)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_511210
暂无简介~
格式:doc
大小:32KB
软件:Word
页数:14
分类:
上传时间:2018-07-30
浏览量:127