我正在开发一个32位操作系统,我需要能够为程序设置新的数据段/堆栈段。然而,我找不到任何关于如何在保护模式下使用这些段寄存器的好信息。我真的需要能够设置一个新的堆栈段,这样我的程序就不会与内核共享相同的堆栈。
在x86保护模式下,段寄存器指向GDT选择器。
1。所以我们需要为每个片段设置合适的选择器,特别是在远跳到保护模式之前为cs, ds, ss。2 . 选择器长度为8字节,它定义了基本、限制和访问权限。请参考下面的链接http://en.wikibooks.org/wiki/X86_Assembly/Global_Descriptor_Table, http://www.jamesmolloy.co.uk/tutorial_html/4.-The%20GDT%20and%20IDT.html, http://en.wikipedia.org/wiki/Global_Descriptor_Table。3.如果你需要更多的信息,请回复我,我可以向你展示我简单的操作系统代码,它设置了适当的GDT并进入保护模式。