无条件短转移机器码为EBxx,其中EB00~EB7F是向后转移(高址方向),EB80~EBFF是向前转移(低址方向),因为80~FF的二进制为1000 0000~1111 1111,高位为“1”代表负数。
转移指令的机器码 = “转移类别机器码” + “位移量”
位移量 = 目的地址 - 起始地址 - 跳转指令本身长度
跳转后执行EIP位于跳转指令下一行,这时应执行EIP + “位移量”处的指令,如下例:
向后转移:
汇编指令:
...
:401000 jmp 401005
...
:401005 xor eax,eax
...
内存中:
:00401000 | EB |