gpt4 book ai didi

assembly - 如何为 x86 中的程序设置一个新的堆栈段以与我的内核分开?

转载 作者:行者123 更新时间:2023-12-02 03:51:14 25 4
gpt4 key购买 nike

我正在开发 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 并进入保护模式。

关于assembly - 如何为 x86 中的程序设置一个新的堆栈段以与我的内核分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14288399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com