进入32位保护模式

时间:2015-12-23 11:07:52

标签: assembly operating-system 32-bit protected-mode

我正在开发一个操作系统。从参考文献开始,我必须从16位实模式进入32位保护模式。在该步骤中,它使用指令:

bits 32

但我的汇编程序说非法它也使用如下指令:

org 0x7c00

一些教程使用[bits 32]。但我使用两者,但没有运气。

我用谷歌搜索了这个,但这一次搞砸了

所以任何指导都会有所帮助。

由于

1 个答案:

答案 0 :(得分:4)

您必须告诉CPU您要进入保护模式。最好从这里开始http://wiki.osdev.org/Babystep1并浏览本网站。简短:在开头用use16bits 16做一些实模式的东西,用lgdt [6byteGDTstruct]将有效值加载到gdt寄存器中,在CR0寄存器中设置位0,跳到代码中的某处,然后从那里使用use32bits 32