这是一个低级系统问题.
我需要混合32位和16位代码,因为我试图从保护模式返回实模式.作为一些背景信息,我的代码是在GRUB引导之后这样做的,所以我没有任何讨厌的操作系统来告诉我我能做什么和不能做什么.
无论如何,我使用[BITS 32]和[BITS 16]与我的程序集告诉nasm它应该使用哪种类型的操作,但是当我测试我的代码时使用bochs看起来像某些操作bochs没有执行代码那样我写.看起来汇编程序正在坚持使用额外的东西0x66
,0x67
这使得bochs感到困惑.
那么,如何在同一个文件中混合32位和16位代码的情况下成功组合代码?有什么诡计吗?
结果问题是我没有正确设置描述符表.我有一点错误,所以我没有进入16位模式,而是进入32位模式(片段恰好有一个兆字节).
谢谢你的建议!
特里