想了解一下 x64下 jmp far 后面地址的计算方式
看了Intel 的指令集手册
Opcode Instruction Op/
En
64-Bit
Mode
Compat/
Leg Mode
Description
EB cb JMP rel8 A Valid Valid Jump short, RIP = RIP + 8-bi
displacement sign extended
to 64-bits
E9 cw JMP rel16 A N.S. Valid Jump near, relative,
displacement relative to
next instruction. Not
supported in 64-bit mode.
E9 cd JMP rel32 A Valid Valid Jump near, relative, RIP =
RIP + 32-bit displacement
sign extended to 64-bits
FF /4 JMP r/m16 B N.S. Valid Jump near, absolute indirect
address = zero-extended
r/m16. Not supported in 64
bit mode.
FF /4 JMP r/m32 B N.S. Valid Jump near, absolute indirect
address given in r/m32. No
supported in 64-bit mode.
FF /4 JMP r/m64 B Valid N.E. Jump near, absolute indirect
RIP = 64-Bit offset from
register or memory
EA cd JMP ptr16:16 A Inv. Valid Jump far, absolute, address
given in operand
EA cp JMP ptr16:32 A Inv. Valid Jump far, absolute, address
given in operand
FF /5 JMP m16:16 AValid Valid Jump far, absolute indirect,
address given in m16:16
FF /5 JMP m16:32 AValid Valid Jump far, absolute indirect,
address given in m16:32.
REX.W + FF /5 JMP m16:64 A Valid N.E. Jump far, absolute indirect,
没有理解 m16:64 是什么意思
后面的 /5 是如何计算出来的 REX.W 到底是什么意思。。
或者举例说明 jmp far 0x1234567812345678 的Opcode 是什么就行。。。 谢谢
阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开
发者可享99元/年,续费同价!