哪个段描述符执行英特尔汇编命令 "sgdt" returns

Which segment descriptor does Intel assembly command "sgdt" returns

我想为应用程序实现 32 位 4Gb 平面内存映射,为此我必须获取并更新数据段描述符和代码段描述符。通过使用汇编命令 "sgdt" 我可以获得全局描述符 Table 但我不确定它的 CS 或 DS 或任何其他描述符。如果有人能帮我解决这个困惑,我将不胜感激。

我依靠 GRUB 来设置 GDT,这就是为什么我不知道它放置所有段描述符的确切位置。通过查看 GDT table 条目,我可以看到 5 个相同的代码段条目和 6 个相同的数据段条目,每个条目的基地址设置为“0”,每个设置的限制为“0xfffff”。你能告诉我这些重复条目的原因吗?从这些查看中,您能否确认 GRUB 已经设置了 Flat Memory 模式?

在评论部分得到很好的回应后回答我自己的问题。 GDT Table 包含保护模式下段描述符的条目,代码段和数据段通过读取代码段寄存器/数据段寄存器的值来识别,其中它包含特定段(也称为段选择器)的索引GDT table.