我想为应用程序实现 32 位 4Gb 平面内存映射,为此我必须获取和更新数据段描述符和代码段描述符。通过使用汇编命令“sgdt”,我可以获得全局描述符表,但我不确定它是 CS 还是 DS 或任何其他描述符。如果有人可以帮助我解决这种困惑,将不胜感激。
我依靠 GRUB 来设置 GDT,这就是为什么我不知道它放置所有段描述符的确切位置。通过查看 GDT 表条目,我可以看到 5 个相同的代码段条目和 6 个相同的数据段条目,每个条目的基地址设置为“0”,每个设置的限制为“0xfffff”。你能告诉我这些重复条目的原因吗?从这些观察中,您能否确认 GRUB 已经设置了 Flat Memory 模式?