其他分享
首页 > 其他分享> > call指令的地址是怎么计算出来的。

call指令的地址是怎么计算出来的。

作者:互联网

:00401008 E801000000              call 0040100E
:0040100D C3                      ret

 

 call 0040100E的机器码是E801000000,E8是CALL指令的opcode,后面的0100 0000是怎么和0040100e对应起来的。

其实01000000这是一个相对地址,并不是我想象的E8后面根一个绝对地址。 绝对地址=call指令的下条指令的地址+相对地址

call指令的下条指令的地址是0040100D+ 相对地址 这里是01000000,由于是little end 反过来就是00000001 

0040100D+00000001=0040100E

0040100E就是这么来的。

 

jz je等条件跳转jmp等条件跳转指令都是这么一个算法

跳转或者call的绝对地址=call指令或跳转指令的下一条指令的地址+ 相对地址(翻转)

 

标签:地址,计算出来,call,指令,跳转,0040100E,0040100D
来源: https://www.cnblogs.com/yfish/p/15392883.html