执行绝对 Far Jmp 的操作数是什么?
我认为它应该如下所示:
EA XX XX XX XX
我尝试使 XX XX XX XX 成为我想跳转到的 4 字节地址,但它没有按预期工作。
执行绝对 Far Jmp 的操作数是什么?
我认为它应该如下所示:
EA XX XX XX XX
我尝试使 XX XX XX XX 成为我想跳转到的 4 字节地址,但它没有按预期工作。
这将是一个绝对的飞跃。
例如,对于 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)后跟目标代码段;两部分都按小端顺序排列。