jmp short ,near ,far

来源:互联网 发布:彩票统计分析软件 编辑:程序博客网 时间:2024/05/21 08:03
无条件转移指令jmp:

这种跳转指令有三种方式:短(short),近(near)和远(far)。

1.短是指要跳至的目标地址与当前地址前后相差不超过128字节。指令为: EB   2个字节,jmp (1个),转移的大小范围:-128~127 

2.近是指跳转的目标地址与当前地址在用一个段内,即CS的值不变,只改变EIP的值。总共3个字节,jmp占1个。(指令为E9)

3.远指跳到另一个代码段去执行,CS/EIP都要改变。短和近在编码上有所不同,在汇编指令中一般很少显式指定,只要写 jmp 目标地址,几乎任何汇编器都会根据目标地址的距离采用适当的编码。(指令为EA)


远转移在32位系统中很少见到,原因前面已经讲过,由于有足够的线性空间,一个程序很少需要两个代码段,就连用到的系统模块也被映射到同一个地址空间。