如何在REAL模式下将汇编程序返回到32位地址?

时间:2016-11-25 17:01:27

标签: assembly x86 intel real-mode

此代码在实模式下运行。 我有这样的例子: 此代码转到0x001FFD50地址。

...
001F066F: push        es
001F0670: push        0FD50
001F0673: retf ^^^^^^
001F0674: push        00051
...

之后,我有这样的代码:

我需要回到0x001F0674地址。

...
001FFE91: push        00674
001FFE94: retn ^^^
...

但不是那样,我去了0x0674地址。如何在实模式下返回0x001F0674地址?

1 个答案:

答案 0 :(得分:0)

感谢您的建议!

你对段和偏移是正确的。但地址0x001F0674在文件中,当我从内存中转储时,我看到那个段与0x001F0674不同。它是0x0018 * 16 + 0674。

非常感谢@Jester,@ Michael Petch,@ Ped7g。