X86中的绝对远跳操作数是什么

时间:2019-02-10 01:31:28

标签: assembly x86 machine-instruction

执行绝对远跳转的操作数是什么?

我认为它应该类似于以下内容:

EA XX XX XX XX

我试图将XX XX XX XX设为我想跳转到的4字节地址,但是它没有按预期工作。

1 个答案:

答案 0 :(得分:5)

这绝对是一个遥远的旅程。

例如,对于16位代码,字节0xEA,0x12、0x34、0x56、0x78将成为指令jmp far 0x7856:0x3412(CPU将尝试将CS​​设置为0x6745并将IP设置为0x3412)。

对于32位代码,其大小需要更大。例如。字节0xEA,0x12、0x34、0x56、0x78、0x9A,0xBC将是指令jmp far 0xBC9A:0x78563412(CPU将尝试将CS​​设置为0xBC9A并将EIP设置为0x78563412)。

换句话说,操作数是目标16位IP(或32位EIP),后跟目标代码段。两者都按小端顺序排列。