这是一个低级系统问题。
我需要混合32位和16位代码,因为我正在尝试从保护模式返回到实模式。作为背景信息,我的代码在GRUB引导后执行,所以没有任何麻烦的操作系统告诉我可以做什么和不能做什么。
无论如何,我使用[BITS 32]和[BITS 16]来告诉nasm应该使用哪种类型的操作,但是当我使用bochs测试我的代码时,看起来对于某些操作,bochs没有执行我编写的代码。看起来汇编器会插入额外的0x66
和0x67
,这使得bochs感到困惑。
那么,我该如何让nasm成功地汇编混合32位和16位代码的文件?有什么诀窍吗?