这是一个低级系统问题。
我需要混合 32 位和 16 位代码,因为我试图从保护模式返回到实模式。作为一些背景信息,我的代码在 GRUB 启动之后执行此操作,因此我没有任何讨厌的操作系统来告诉我我能做什么和不能做什么。
无论如何,我在我的程序集中使用 [BITS 32] 和 [BITS 16] 来告诉 nasm 它应该使用哪些类型的操作,但是当我测试我的代码使用 bochs 时,看起来对于某些操作 bochs 没有执行的代码我写。看起来汇编程序正在添加额外内容0x66
和0x67
's,这让 bochs 感到困惑。
那么,在同一文件中混合 32 位和 16 位代码的情况下,如何让 nasm 成功组装代码?有什么技巧吗?