0

执行绝对 Far Jmp 的操作数是什么?

我认为它应该如下所示:

EA XX XX XX XX

我尝试使 XX XX XX XX 成为我想跳转到的 4 字节地址,但它没有按预期工作。

4

1 回答 1

7

这将是一个绝对的飞跃。

例如,对于 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)后跟目标代码段;两部分都按小端顺序排列。

于 2019-02-10T01:54:49.277 回答