已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8086第三章作业3-11在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址(1)1000H 10000H-1FFFFH(2)1234H 12340H-2233FH(3)E000H E0000H-EFFFFH(4)AB00H AB000H-BAFFFH3-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 答:下条指令存储器地址:3F12DH3-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 PTRBP+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做间接寻址寄存器如:IN AX,DX 又如: OUT DX,AL(3) 跳转指令直接写明寄存器即可 (段内) 如: JMP BX 段间需组合:如: JMP DWORD PTR BX+ADDR13-38指出8086/8088下列指令中存储器操作数地址的计数表达式。(1) MOV AL,DI 答:存储器操作数地址的计数表达式为:(DS)16+(DI)(2) MOV AX,BX+SI 答:地址的计数表达式为:(DS)16+(BX)+(SI)(3) MOV 8BX+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 代码段(程序段):CS2 数据段:一般DS;当用BP(及其组合)间接寻址偏移量时,用SS段寄存器; 串操作时,源段(与SI组合)用DS;目标段(与DI组合)用ES3 堆栈段:与堆栈相关的指令;当用BP(及其组合)间接寻址偏移量时,用SS段寄存器;4 附加段:加段超越运算符(如38-(4);串操作时,目标段(与DI组合)用ES3-39 指出8086/8088下列指令的错误何在?1MOV SI,IP 答:IP不可访问:2MOV CS,AX 答:CS不可访问:3MOV BL,SI+2 答:类型不匹配,或者变址寻址寄存器未加方括号。应写成MOV BL,SI+2或MOV BX,SI+24MOV 60H,BL 答:立即数不能做目标操作数。5PUSH 2400H 答:PUSH的源操作数不能是立即数。6INC BX 答:对于间接寻址的存储单元加1指令,数据的长度必须用BYTE PTR、WORD PTR或DWORD PTR类型伪指令加以说明,否则,汇编程序不能确定是对字节、字还是双字加1。(P92)7MUL 60H 答:无符号乘法指令,操作数不能用立即数。8ADD 2400H,2AH 答:2400h前要加类型说明9MOV BX,DI 答:在MOV指令中,两个操作数不能都是存储器操作数。10MOV SI,AL 答:两个操作数的长度不一样,类型不匹配。有的同学所答非所问,问错在哪里,却作成了改成正确的。3.40 MOV CS,AX指令会带来什么错误?答:这样做会影响后面指令,因为CS的改变不能按要求执行。提示遇到了无效指令。3-41 阅读下列程序段,指出每条指令执行以后有关寄存器的内容是多少?MOV AX,0ABCH ;AX寄存器的内容是:0ABCHDEC AX ;AX寄存器的内容是:0ABBHAND AX,00FFH ;AX寄存器的内容是:00BBHMOV CL,4 ;CL寄存器的内容是:04HSAL AL,1 ;AL寄存器的内容是:76HMOV CL,AL ;CL寄存器的内容是:76HADD CL,78H ;CL寄存器的内容是:0EEHPUSH AX ;(SS*16+SP)=0076H,AX寄存器的内容是:0076HPOP BX ;BX寄存器的内容是:0076H3.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 LISTSI,EDX ; PA=DS*16+LIST+SI=11750H(2) MOV CL,LISTBX+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=11300H3.45 假定PC机存储器地地址区有关单元的内容如下:(20H)=3CH,(21H)=00H,(22H)=86H,(23H)=0EH,且CS=2000H,IP=0010H,SS=1000H,SP=0100H,FLAGS=0240H,这时若执行INT 8指令,试问:(1) 程序转向从何处执行(用物理地址回答)?(2) 栈顶6个存储单元的地址(用逻辑地址回答)及内容分别是什么?答:(1)程序转向0E89CH处执行,中断服务程序的入口地址在00020H-00023H单元。(2) 栈顶6个单元的内容 1000H:00FEH 0240H 1000H:00FCH 2000H 1000H:00FAH 0012H注:执行INT 8指令(2个字节)使F寄存器内容先入栈,断点再入栈保护,同时中断服务程序的入口地址赋值给 CS和IP3-46 设SP=2000H,AX=3000H,BX=5000H,执行下列片段程序后,SP=?AX=?BX=?PUSH AXPUSH BXPOP AX答:执行以上片段程序后,SP=1FFEH;AX=5000H;BX=5000H注:8086/8088的堆栈方向与51单片机相反:执行PUSH 堆栈指针被修改:SP-2 SP执行POP 堆栈指针被修改:SP+2 SP3-48 设AX=5555H,BX=FF00H,执行下列片段程序后, AX=?BX=?CF=?AND AX,BX ;AX=5500HXOR AX,AX ;AX=0000HNOT BX ;BX=00FFH答:执行以上片段程序后,AX=0000H;BX=00FFH;CF=0注:“与” “或” “异或”指令使CF清零, “非”指令不影响CF3-50 若DS=3000H,BX=2000H,SI=0100H,ES=4000H,计算出下述各条指令中存储器操作数的物理地址。1. MOV BX,AH 答:存储器操作数物理地址为:(DS)16+(BX)=32000H2ADD AL,BX+SI+1000H 答:物理地址为:(DS)16+(BX+SI+1000H)=33100H3MOV AL,BX+SI 答:物理地址为:(DS)16+(BX)+(SI)=32100H4SUB AL,ES:BX 答:物理地址为:(ES)16+(BX)=42000H3-52 选用最少指令,实现下述要求的功能。1 AH的高4位清零。 AND AH,0FH2 AL的高4位取反。 XOR AL,0F0H3 AL的高4位移到低4位,高4位清零。 (一) MOV CL,4 SHR AL,CL ;逻辑移位,补0 (二)MOV CL,4 ROR AL,CL AND AH,0FH4 AH的低4位移到高4位,低4位清零。 (一) MOV CL,4 SHL AH,CL ;逻辑移位,补0 (二) MOV CL,4 ROL AH,CL AND AL,0F0H3.53设BX=6D16H,AX=1100H,执行指令后的结果MOV CL,06H ;CL=6ROL AX,CL ;AX=4004HSHR BX,CL ;BX=01B4H3-54 设初值AX=0119H,执行下列程序段后, AX=?MOV CH,AH ;(CH)=01H ADD AL,AH ;(AL)=1AH ,CF=0DAA ;(AL)=20H ,CF=0XCHG AL,CH; ;(CH)=20H ,AL=01H ,不影响标志位状态ADC AL,34H ;(AL)=35HDAA ;(AL)=35HMOV AH,AL ;(AH)=35HMOV AL,CH ;(AL)=20HHLT(AX)=3520H只写最后结果也行,但如果写错了,中间的过程起作用。3.55 AX=6264H,CX=0004H,执行指令段后=?AND AX,AX;(AX)=6264HJZ DONE ;ZF=0,顺序执行SHL CX,1;(CX)=0008HROR AX,CL;(AX)=6462HDONE:OR AX,1234H;(AX)=7676H 3-56 写出可使AX清零的几条指令。1 MOV AX,0000H2 AND AX,0000H3 XOR AX,AX4 SUB AX,AX3.59 哪个段寄存器不能从堆栈弹出?答:CS段寄存器的内容可以压入堆栈,却不能从堆栈弹出。P843-62 若AX=1001H,DX=20FFH,当执行ADD AX,DX指令以后,请列出和数及标志寄存器中每个位的内容。0001000000000001+ 00100000111111110011000100000000-3100H CF=0;AF=1;SF=0;ZF=0;OF=0 PF=0(只与运算结果的低8位有关)3.69 设计一个程序段,将AX和BX中的8位BCD数加CX和DX中的8位BCD数(AX和CX是最高有效寄存器),加法以后的结果存入CX和DX中。PUSH AXPUSH CXMOV AX,DXADD AL,BL;低字节相加DAA ;低字节调整MOV CL,ALMOV AL,AHADC AL,BH; 高字节相加DAA ;高字节调整MOV DH,ALMOV DL,CL;(BX)+(DX)和放到DX中POP CXPOP AXADC AL,CL;低字节相加DAA ;低字节调整MOV CL,ALMOV AL,AHADC AL,CH; 高字节相加DAA ;高字节调整MOV CH,AL;(AX)+(CX)和放到CX中3-74 设计一个程序段,将AX中的最右4位置1,将AX中的最左3位清0,并且把AX中的7、8、9位取反。 OR AX,000FHAND AX,1FFFHXOR AX,0380H; 01C0H 0000 0011 1000 0000 0000 0001 1100 00003.82 选择正确的指令以实现下列任务(1)DI右移3位,再把0移入最高位(2)AL中的所有位左移1位,使0移入最低位(3)AL循环左移3位(4)DS带进位位循环右移1位答:(1)MOV CL,3SHR DI,CL(2)SAL AL,1(3)MOV CL,3ROL AL,CL (4)RCR DX,13-86 用串操作指令设计实现如下功能的程序段:先将100个数从6180H处搬移到2000H处;再从中检索出等于AL中字符的单元,并将此单元置换成空格符。CLD MOV CX,100MOV SI,6180HMOV DI,2000HREP MOVSB ;至此完成了将100个数从6180H处搬移到2000H处MOV CX,100MOV DI,2000HMOV AL,DATACH1:JCXZ STO REPNE SCASB JZ CH2 JMP CH1CH2:MOV AH,20HDEC DIMOV DI,AH ;MOV BYTE PTRDI,20HINC DIJMP CH1STO:HLT方法2MOV SI,6180HMOV DI,2000HMOV CX,100CLDLP1:LODSBSTOSBLOOP LP1MOV AL,DATAMOV CX,100MOV DI,2000HCH1:JCXZ STO REPNE SCASB JZ CH2 JMP CH1CH2:MOV AH,20HDEC DIMOV DI,AH ; MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市景观提升改造工程经济效益和社会效益分析报告
- 2025山东广饶经济开发区所属国有公司招聘13人笔试历年典型考点题库附带答案详解试卷3套
- 2025安徽安庆市潜山市潜润国有资本投资运营集团有限公司招聘(第二批)综合笔试历年常考点试题专练附带答案详解试卷3套
- 污水处理厂尾水深海排放工程环境影响报告书
- 输电线路迁改项目环境影响评估方案
- 老旧小区改造及城市更新工程节能评估报告
- 2025中国出口信用保险公司校园招聘100人笔试历年备考题库附带答案详解试卷3套
- 丰城市公务员考试熊熙试题及答案
- 法律硕士参加公务员考试试题及答案
- 2025年及未来5年市场数据中国小儿退热口服液行业市场深度调查及发展前景研究预测报告
- 气弹簧力学计算器
- 专利产品体验报告
- 宇电温控器ai 500 501用户手册s 6中文说明书
- 医疗护理服务管理之优质护理服务培训PPT
- 腹内疝的临床与影像析
- Unit+1+Cultural+Heritage+Reading+for+Writing课件高中英语人教版(2019)必修第二册
- GB/T 10001.6-2021公共信息图形符号第6部分:医疗保健符号
- 高处作业施工安全专项施工方案
- 五四新青年演讲比赛主题活动模板课件
- 企业内部集资合同
- 护理交接班操作流程图
评论
0/150
提交评论