x86_64 相对 jmp 操作数
x86_64 relative jmp operand
我无法理解操作数 FE FC FF FF
的结果是 0x9e7080.
我对当前地址进行了一些运算sub/add,因为它应该是相对跳转,但结果仍然不等于0x9e7080.
instruction address | bytes | text form
L_009E737D | E9 FE FC FF FF | jmp 0x9e7080
需要考虑三件事:
FEFCFFFF
以小端形式给出,表示 0xFFFFFCFE
. 的十六进制值
- 此十六进制值经过符号扩展,因此为负数,十进制值为
-770
。
- 您还必须添加指令占用的字节数。
这导致 0x009E737D + 0xFFFFFCFE + 5 = 0x009e7080
,等于 0x009E737D - 0x00000302 + 5 = 0x009e7080
。
我无法理解操作数 FE FC FF FF
的结果是 0x9e7080.
我对当前地址进行了一些运算sub/add,因为它应该是相对跳转,但结果仍然不等于0x9e7080.
instruction address | bytes | text form
L_009E737D | E9 FE FC FF FF | jmp 0x9e7080
需要考虑三件事:
FEFCFFFF
以小端形式给出,表示0xFFFFFCFE
. 的十六进制值
- 此十六进制值经过符号扩展,因此为负数,十进制值为
-770
。 - 您还必须添加指令占用的字节数。
这导致 0x009E737D + 0xFFFFFCFE + 5 = 0x009e7080
,等于 0x009E737D - 0x00000302 + 5 = 0x009e7080
。