微机原理习题解答:4_第1页
微机原理习题解答:4_第2页
微机原理习题解答:4_第3页
微机原理习题解答:4_第4页
微机原理习题解答:4_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、接寻址,习题四1 . 8086 语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间 寄存器相对基址变址和相对基址变址寻址。其中寄存器寻址的指令执行速度最快。若 DS = 6000H , SS= 5000H , ES= 4000H , SI = 0100H , BX = 0300H , BP= 0400H , D =数据段中变量名 NUM 的偏移地址为 0050H ,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX ,64H(2)MOV AX ,NUM(3)MOV AX ,SI(4)M

2、OV AX ,BX(5)MOV AX ,BP(6)MOV AL ,DI(7)MOV AL ,BX1110H(8)MOV AX ,NUMBX(9)MOV AX ,BXSI(10)MOV AX, NUM BXDI 21200H,答:寻址方式为直接寻址; 答:寻址方式为直接寻址; 答: 答: 答: 答: 答: 答:寻址方式为寄存器相对寻址; 答:寻址方式为基址变址寻址; 答:寻址方式为相对基址变址寻址;寻址方式为寄存器间接寻址; 寻址方式为寄存器间接寻址; 寻址方式为寄存器间接寻址; 寻址方式为寄存器间接寻址; 寻址方式为寄存器相对寻址;PA= 60064HPA= 60005HPA= 60100HP

3、A= 60300HPA= 50400HPA= 61200HPA= 61410HPA= 60305HPA= 60400HPA=61505H3 .设 BX = 637DH , SI = 2A9BH,位移量为 生的有效地址。C237H ,试确定由这些寄存器和下列寻址方式产(1 )直接寻址答:有效地址为EA = C237H(2)用 BX 的寄存器间接寻址答:有效地址为EA = 637DH(3)用 BX 的相对寄存器间接寻址答:有效地址为EA = 125B4H(4)基址加变址寻址答:有效地址为EA =8E18H(5)相对基址变址寻址答:有效地址为EA = 1504FH其中,(3)和( 5)中产生进位,要

4、把最高位 1 舍去。4.指出下列指令是否正确,1)MOVDS, 2010H2)PUSHAL3)MOVDX , SP4)IN AL , 0A00H5)XCHGCL , CH6)SHRAX, 37)AAACX8)ADDBP+DI9)OUTDX, CL10)CBWBH11)ADD03ECH12)MOVBX, SI+DI13)MOVDI, AX若不正确情说明原因。;立即数不能传送到;栈操作,操作数类型必须为 WORD 类型;SP寄存器不能做间址寄存器; I/O 指令的直接寻址,地址只能为 8 位 ;正确;移位超过一位时,应采用;非组合的 BCD 码加法调整 AAA;加法指令 ADD ,缺少源操作数;

5、I/O 指令操作数只能用 AX、AL直接地址或用 DX 间址;符号扩展指令为隐含操作数;加法指令应为双操作数指令,立即数不能做目的操作数;源操作数形式错误, SI 和 DI 不能同时做为间址寄存器; AX 不能做为间址寄存器DSCL 寄存器间址指令应为隐含操作数提供,端口地址可以是 8 位的MOV CL , A8H;源操作数为 16 进制的立即数, 16 进制数以字母开头时应在前面加“MOV ES, DS;错同( 34)题IN AL, BX ; I/O 指令端口地址表示错误,只能用 8位立即数或0”39)40)DX 间址; AH 清零;AX 左移一位,相当于 2X; 2X 送 BX 暂存;AX

6、 左移二位,2X X 4=8X; 2X+8X=10XX乘10,结果在AX中。14)OUT258H , BX; I/O 指令格式错误,见( 9)题的解释15 )SHLAX , 3;移位指令,位移位数大于 1 时,应用 CL 来指明16 )MOV64H , AL;立即数不能做为目的操作数17 )ADDAL , 6600H;源、目的操作数的类型不一致18)MOV BX , SI;传送指令中,两个操作数不能同时为存储器操作数19 )XCHGAX , 8800H;交换指令的操作数不能使用立即数20)MOVAX ,BXDX;传送指令的源操作数,不能使用立即数21 )LEABX, 1000H;有效地址传送指

7、令的源操作数不能为立即数,必须是存储器操作数22)DIV0010H;正确23)LEADX, DI;同( 21)题,源操作数不能为寄存器操作数24)MULAX , 200H;乘法指令的目的操作数是隐含的,不能出现在指令中25)MOVAX , BX+BP;传送指令中源操作数格式错,BX 和 BP 不能同时为间址寄存器26)CMPBX , SI;比较指令的两个操作数不能同时为存储器操作数27)OUTDX , BX; I/O 指令中,源操作数只能使用 AL 或 AX 寄存器28)ANDOFH , AL;“与”指令中,目的操作数不能使用立即数29)SALBX , CX;移位指令,移位位移不能用 CX 寄

8、存器指明30)JMPFAR BX+SI;转移指令中转移的目标地址表达方式错误;如果是段内间接转移,应为:JMP WORD PTR BX+SI ;如果是段间间接转移,应为:JMP DWORD PTR BX+SI 31 )JNZAAA ;不相等转移指令中,符号地址(标识符)不能使用系统中的保留字32)JMPNEXT;正确f r 一 AI r 、一 /. (I.( lt r t . 'tzA L_- 、r、.厶 u.33)SBCAX , DX;指令助记符错,源操作数表示方式错34)MOVCS, DS;段寄存器之间不能传送数据,CS寄存器也不能做为目的操作数35)ADDDS , AX;加法指令

9、中段寄存器不能做为操作数36)MOVAL , CX;源、目的操作数的类型不一致,见(17)题37)INC BX;没有指定存储器操作数类型38)5设一个字节数据 X 存放 AL 寄存器中,试说明下列程序的功能: XOR AH , AHSAL AX , 1MOV BX , AXMOV CL , 2SAL AX , CLADD AX , BX该段程序实现了字节数据6试编程实现:(1)(3)(4)AL寄存器的低BL寄存器的低CL寄存器的低4位清04位置14位取反若是,将0送入BL寄存器;否则将1送ANDAL , 0F0H:AL寄存器的低4位清0ORBL , 0FH:BL寄存器的低4位置1XORCL,

10、0FH:CL寄存器的低4位取反TESTDL, 03H:测试DL寄存器JZ NEXTMOVBL , 1JMPNEXT1NEXT : MOV BL , 0NEXT1 : HLT测试DL寄存器的最低2位是否同时为0, 入BL寄存器。答:程序段如下7 .若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元中,得到的和存放在 2000H开始的内存单元。试编程完成。答:程序段如下MOVAX , 3000HADD2000H , AXMOVAX , 3002HADC2002H , AX8.设从2000H为首址的内存中,存放着 10个带符号的字节数据,试编程完成:找出其中最 大的

11、数,并存入2000H单元。MOVHLT答:程序段如下MOVBX ,2000HMOVCX,9MOVAL ,BXN2 : INCBXCMPAL ,BXJGEN1MOVAL ,BXN1 : LOOPN22000H , AL9 .用寄存器间接寻址方式时,BX、BP、SI、DI分别针对什么情况来使用?用这4个寄存器分别组合间接寻址时,物理地址是怎样计算的?举例说明。PA= DS X 10H + BX/SI/DIPA= DS X 10H + BX + SI 或(BX + DI)PA= SSX 10H + BP答:BX、SI、DI用于在数据段寻址,BP用于在堆栈段寻址。 在数据段物理地址为:或者为:在堆栈段

12、物理地址为:举例如下:MOVMOVAX ,AX ,BX + SIBP+ DI;在数据段寻址, PA= DSX 10H + BX + SI ;在堆栈段寻址, PA= SSX 10H + BP + DI或者为:PA= SSX 10H + BP + SI 或( BP+ DI)(1)MOVAX ,1400H;答:执行完该条指令后AX=1400HMOVAX ,BX;答:执行完该条指令后AX=0300HMOVAX ,1400H;答:执行完该条指令后AX=4C2AHMOVAX ,BX;答:执行完该条指令后AX=3412HAX寄存器的内容。11.根据以下要求,试写出相应的汇编语言指令。(1) 把BX寄存器和D

13、X寄存器的内容相加,结果存入BX 答:指令为 ADD BX , DX(2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相 加,并把结果送到 AL寄存器中。答:指令为(3) 用寄存器BX寄存器中。ADD AL , BX + SI和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX相加,并把结果存回存储器中。答:指令为ADDBX + 0B2H , CX(4)用位移量为0524H的直接寻址方式把存储器中的一个字与立即数结果送回该存储单元。答:指令为ADD0524H , 3C5AH3C5AH相加,并把10.已知:DS= 2000H ,BX = 0300H, SI

14、= 0002H , ( 20300H) = 12H,( 20301) = 34H , (20302H )(21402H)= B7H , (21403H )=56H , ( 20303H )= 78H, (21400H )= 2AH , (21401H )= 4CH ,=65H试说明下列各条指令执行完后12已知堆栈段寄存器 SS的内容是0FF0AH,堆栈指针寄存器 SP的内容是0008H,先执行 两条把8057H和0F7CH分别进栈的PUSH指令,再执行一条 POP BX指令。试画出堆栈区和 SP 的内容过程变化示意图(标出存储单元的物理地址)。答:将8057H和0F7CH分别进栈后,SP= 0

15、004H ,再执行一条 POP BX指令后,SP= 0006H , BX = 0F7CH。堆栈区和SP的内容过程变化示意图如下:SP= 0008HSP= 0004HSP= 0006HSS= 0FF0AH0FF0A0H0FF0A1H0FF0A2H0FF0A3H0FF0A4H0FF0A5H0FF0A6H0FF0A7H0FF0A8H0FF0A9H0FF0AAHSPSP13字节扩展指令和字扩展指令用在什么场合?举例说明。 答:用在除法运算中,对带符号数的被除数进行扩展; 例如:当被除数在 AX 中,除数在 BX 中时 CDWIDIV BX14.写出执行以下计算的指令系列。其中X、Y、Z、R、W均为存放

16、16位带符号数单元的地址。MOVAX , ZSUBAX , XADDAX , WMOVZ , AXZ J W (X 6)答:指令系列如下ADDX,6SUBR,9MOVAX , WSUBAX , XSUBAX , RMOVZ , AX2)R9)Z J W + ( Z X)答:指令系列如下Z J (W X X ) / (Y + 6), R J 余数(1)答:指令系列如下MOVAX,WIMULXMOVBX,YADDBX,6IDIVBXMOVR , DXZ J(WX) / 5X Y)X 2答:指令系列如下MOVAX,WSUBAX,XCDWIDIV5IMULYIMUL2ADDDX,CF4)MOVZ, A

17、X15写出完成以下操作的程序段。假设各变量的值均为用压缩( 1) U J V ( S 6)BCD 码表示的二位十进制数答:程序如下MOVAL ,SSUBAL ,6DASADDAL ,VDAAMOVU,AL(2) U J (X + W) ( Z V ) 答:程序如下MOVAL ,ZSUBAL ,VDASMOVBL,ALMOVAL ,XADDAL ,WDAASUBAL ,BLDASMOVU,AL16.移位指令和循环移位指令在执行操作时,有什么差别?在编制乘除法程序中,为什么常用移位指令来代替乘除法指令?试编制一个程序段,实现 CX 中的数除以 4,结果仍放在 CX 中。 答:逻辑移位指令用于无符号

18、数的移位,左移时,最低位补0,算术移位指令用于对带符号数的移位,左移时,最低位补0,右移时, 的同时,且保持。小循环移位指令大循环移位指令 对于二进制数, 除法指令。右移时,最高位补 0。最高位的符号在右移ROL、ROR 是只对目标操作数进行循环,即不含RCL、RCR 是把标志位 CF 也包含在循环中的左、右移循环移位。 左移一位相当于乘二, 右移一位相当于除二, 所以可以用移位指令来代替乘CF 的左、右移循环移位。SAR CX , 1SAR CX , 1;CX 算术右移一位,除二;CX 算术右移一位,除二17.在0628H单元处有一条二字节指令 JMP SHORT OBJ,如果其中位移量为:

19、6BH :0C6H,试问转向地址处的值为多少? 答:段内短转移的把当前的 IP 值(即 JMP 指令的下一条指令的地址)与指令指定的移量之和送到IP,使程序运行发生转移。指令中的OBJ是一个带符号的八位偏移量。0651H0692H05F0H27H;8 位偏当OBJ = 27H时,转移的目标地址值为: 当OBJ = 6BH时,转移的目标地址值为: 当OBJ = 0C6H时,转移的目标地址值为:18带参数的返回指令用在什么场合?设栈顶地址为针的值是多少?答:当调用程序为子程序提供一定的参数或参数的地址,这些参数是通过堆栈传递给子程序 时;在子程序运行结束返回时,这些参数或参数地址已经没有在堆栈中保

20、留的必要。因此,使用 带参数的返回指令 RET n,以便废弃一些 CALL指令执行前入栈的参数。4000H ,当执行 RET 0008H 后,SP指sp= 4008H。19假定 AX 和 BX 中内容为带符号数, CX 和 DX 中的内容为无符号数。请用比较指令和 条件转移指令实现以下判断。(1)(2)(3)(4)(5)若 若 若 若 若DX BX CXBX DX的内容高于 CX 的内容, 的内容大于 AX 的内容, 的内容等于零,转去执行 的内容小于等于 AX 的内容,转去执行 EXCEED 。 的内容低于等于 CX 的内容,转去执行 EXCEED 。转去执行 EXCEED 。转去执行 EXCEED 。ZERO。设栈顶地址为4000H,当执行RET 0008H后,执行SPSP+n的操作,答:CMPDX , CXJAEXCEEDCMPBX , AXJGEXCEEDCMPCX , 0JZZEROCMPBX , AXJLEEXCEEDCMPDX , CXJBEEXCEED20分析下列程序段:ADDAX ,BXJNOL1JNCL2SUBAX ,BXJNCL3JNOL4SHORTJMPBX 的内容L5带符号数)给定如下:AXBX(1)B568H54B7H(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论