Как настроить новый сегмент стека для программ в x86, чтобы отделить от моего ядра?
Я занимаюсь разработкой 32-битной ОС, и мне нужно иметь возможность настраивать НОВЫЕ сегменты данных / сегменты стека для программ. Однако я не могу найти ЛЮБОЙ хорошей информации о том, как использовать эти регистры сегментов в защищенном режиме. Мне действительно нужно иметь возможность установить новый сегмент стека, чтобы мои программы не использовали тот же стек, что и ядро.
1 ответ
В защищенном режиме 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 и входит в защищенный режим.