转移指令及其原理

offest:获得标号的偏移地址

   使用形式:offest 标号

   offest 标号整个指令可以当值用

   eg:start:mov ax,offest start  相当于mov ax,0

jmp:

    (1)jmp short 标号:转到标号处执行指令,段内转移

          用标号处的ip改变当前ip, 对ip的修改范围(即加减)为-128~127

    (2)jmp near ptr标号:和jmp short 一样,不同的是对ip修改范围是-32768~32767

     (3)jmp far ptr 标号:转到标号处执行指令,段间转移

          用标号处的cs和ip改变当前cs和ip, 对ip的修改范围为-128~127

    (4)jmp 16位寄存器

          ip=寄存器的值

     (5)jmp word ptr内存地址单元(段内转移)

           只变ip

     (6)jmp dword ptr内存单元地址(段间转移)

         高地址是cs,低地址ip

     (7)jcxz 标号:if(cx==0)jmp short 标号

     (8)loop 标号:cx--;if(cx不等于0)jmp short 标号

     上述指令都是根据相对位移来进行转移的,不需要目的地址,即编译器事先计算好位移(指令里带标号的)

     

posted @ 2016-04-07 18:36  xhyxhy  阅读(239)  评论(0编辑  收藏  举报