我正在开发一个操作系统。从参考文献开始,我必须从16位实模式进入32位保护模式。在该步骤中,它使用指令:
bits 32
但我的汇编程序说非法它也使用如下指令:
org 0x7c00
一些教程使用[bits 32]
。但我使用两者,但没有运气。
我用谷歌搜索了这个,但这一次搞砸了
所以任何指导都会有所帮助。
由于
答案 0 :(得分:4)
您必须告诉CPU您要进入保护模式。最好从这里开始http://wiki.osdev.org/Babystep1并浏览本网站。简短:在开头用use16
或bits 16
做一些实模式的东西,用lgdt [6byteGDTstruct]
将有效值加载到gdt寄存器中,在CR0寄存器中设置位0,跳到代码中的某处,然后从那里使用use32
或bits 32
。