执行绝对远 JMP 的操作数是什么?
我认为它应该如下所示:
EA
XX XX XX XX我尝试将 XX XX XX 制作为我想跳转到的 4 字节地址,但它没有按预期工作。
这将是一个绝对的远距离跳跃。
例如,对于 16 位代码,字节0xEA、0x12、0x34、0x56 0x78 ws 将是指令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(,后跟目标代码段;两个部分都按小端顺序排列。