您的位置 首页 国产IC

8086指令系统—操控搬运指令(一)

控制转移指令通过改变CS:IP来控制程序的执行流程。这类指令包括无条件转移指令、条件转移指令、循环指令、子程序调用和返回指令以及中

  操控搬运指令经过改动CS:IP来操控程序的履行流程。这类指令包含无条件搬运指令、条件搬运指令、循环指令、子程序调用和回来指令以及中止和中止回来指令。

    ⑴ 无条件搬运
      JMP 跳转

     ⑵ 条件搬运
      JZ/JNZ    成果为零/不为零则搬运
      JS/JNS    成果为负/为正则搬运
      JO/JNO    溢出/不溢出则搬运
      JP/JNP    奇偶位为1/为0则搬运
      JB/JNB    低于/不低于则搬运
      JBE/JNBE   低于等于/高于则搬运
      JL/JNL    小于/不小于则搬运
      JLE/JNLE   小于等于/大于则搬运
      JCXZ     CX为零则搬运

     ⑶ 循环指令
      LOOP      循环
      LOOPZ/LOOPE  为零/持平时循环
      LOOPNZ/LOOPNE 不为零/不等时循环

     ⑷ 子程序调用与回来
      CALL      调用
      RET       回来

     ⑸ 中止及中止回来
      INT       中止
      INTO      溢出则中止
      IRET       中止回来

  程序中指令的履行次序是由CS:IP来决议的,程序搬运类指令可改动IP或CS、IP的内容,然后操控指令的履行次序,完成指令搬运、程序调用等功能。

  1 无条件搬运指令

 JMP指令操控程序无条件地跳转到意图单元,运用JMP指令可有三种格局:

 ⑴ JMP SHORT label 短搬运(short jump)
   
 ⑵ JMP NEAR PTR label 近搬运(near jump)

 ● JMP label 直接搬运(direct jump)
  
 ● JMP reg 寄存器直接搬运(register indirect jump)
  
 ● JMP WORD PTR OPR 存储器直接搬运(memory indirect jump)
  
 ⑶ JMP FAR PTR label 远搬运(far jump)

 短搬运的方针地址(或称转向地址)相对于当时IP值的位移量在-128至+127字节之间,当时IP值是指JMP指令的下一条指令的地址(如图3.11所示)。对短搬运JMP,机器指令的第一个字节为操作码EB,第二个字节为位移量00~FF,这是一个带符号的补码数。转向地址的计算方法为:(IP)当时+8位位移量。操作符SHORT指示汇编程序将JMP指令汇编成一个2字节指令。

  ⑴ JMP SHORT label 短搬运(short jump)
    履行操作:(IP) ← (IP)当时+8位位移量

 短搬运示意图
  

  ⑵ JMP NEAR PTR label 近搬运(near jump)
  近搬运是JMP指令的缺省格局,能够写为”JMP label”。它可在当时代码段内搬运,机器指令的操作码是E9,位移量是16位的带符号补码数。指令中的转向地址能够是直接寻址方法、寄存器寻址方法、寄存器直接方法和存储器寻址方法。

  ● JMP label 直接搬运(direct jump)
  履行操作:(IP) ← OFFSET label = (IP)当时+16位位移量
  搬运的方针地址在指令中可直接运用符号地址,因为位移量为16位,它的搬运规模应是-32768至+32767,也就是说,近搬运指令能够搬运到段内的任一个方位。

  ● JMP reg 寄存器直接搬运(register indirect jump)
  履行操作:(IP) ← (reg)
  搬运的方针地址在寄存器中,例如指令”JMP BX”履行的成果,将BX的内容送给IP。

  ● JMP WORD PTR OPR 存储器直接搬运(memory indirect jump)
  履行操作:(IP) ← (PA+1,PA)
  存储器的物理地址PA由指令中的寻址方法确认,JMP指令履行的成果,把PA单元的字内容送到IP寄存器中。例如”JMP WORD PTR [DI]”,物理地址PA = (DS)×24+(DI),指令履行的成果是(IP)= (PA+1,PA)。

  ⑶ JMP FAR PTR label 远搬运(far jump)
  履行操作:(IP) ← label的段内偏移地址
       (CS) ← label地点段的段地址
  远搬运完成的是段间的跳转,即从当时代码段跳转到另一个代码段中,这意味着指令履行后,不只要改动IP的值,CS也会得到一个新的段地址。在汇编指令中,远搬运的方针地址也能够运用除当即寻址方法外的任何寻址方法来表明。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/256964.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部