我正在开发一个操作系统。从参考资料来看,我必须从 16 位实模式进入 32 位保护模式。在该步骤中,其使用指令为:
bits 32
但是我的汇编程序说这是非法的,它也使用如下指令:
org 0x7c00
一些教程使用[bits 32]
. 但我两者都用,但没有运气。
我用谷歌搜索了这个,但这次它搞砸了
因此,任何指导都会有所帮助。
谢谢
我正在开发一个操作系统。从参考资料来看,我必须从 16 位实模式进入 32 位保护模式。在该步骤中,其使用指令为:
bits 32
但是我的汇编程序说这是非法的,它也使用如下指令:
org 0x7c00
一些教程使用[bits 32]
. 但我两者都用,但没有运气。
我用谷歌搜索了这个,但这次它搞砸了
因此,任何指导都会有所帮助。
谢谢
你必须告诉 CPU 你想进入保护模式。最好从这里开始http://wiki.osdev.org/Babystep1并在这个网站上四处看看。use16
简而言之:在开始时使用类似or的东西做一些实模式的东西,用bits 16
将有效值加载到 gdt 寄存器中lgdt [6byteGDTstruct]
,在 CR0 寄存器中设置位 0,在代码中的某个地方跳转并使用use32
orbits 32
从那里。