码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言7

时间:2015-06-03 19:07:31      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

用法1: jmp short 标号(转到标号处执行指令)

这种格式的 jmp 指令实现的是段内短转移,它对IP的修改范围为 -128~127,也就是说,它向前转移时可以最多越过128个字节,向后转移可以最多越过127个字节。

段内转移,只修改IP,比如jmp ax
段间转移,同时修改CS和IP,比如jmp 1000:200
短转移,IP取值范围-128-127, 8位
近转移,IP取值范围-32768-32767,16位

offset是伪指令,它的功能是取标号的偏移地址

代码:
assume cs:code
code segment
db  10 dup(0)
s: mov ax,0ffffh
start: jmp short s
jmp short s1
nop
s1: nop
mov ax,4c00h
int 21h
code ends
end start

Debug中:
1467:0000 0000          ADD     [BX+SI],AL
1467:0002 0000          ADD     [BX+SI],AL
1467:0004 0000          ADD     [BX+SI],AL
1467:0006 0000          ADD     [BX+SI],AL
1467:0008 0000          ADD     [BX+SI],AL
1467:000A B8FFFF        MOV     AX,FFFF
1467:000D EBFB          JMP     000A
1467:000F EB01          JMP     0012
1467:0011 90            NOP
1467:0012 90            NOP
1467:0013 B8004C        MOV     AX,4C00
1467:0016 CD21          INT     21
jmp short s 被编译器解释为  JMP     000A,,对应机器码 EBFB,   EB 对应jmp, FB对应-5,向上跳转5个字节
jmp short s1被编译器解释为  JMP    0012, 对应机器码 EB01,   EB 对应jmp, 01对应1,向下跳转1个字节
机器码中竟不包含转移的目的地址,这意味着CPU并不知道转移目的地址,  只需知道相对偏移

汇编语言7

标签:

原文地址:http://www.cnblogs.com/mayingkun/p/4549856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!