既然是这种情况,就不要考虑页面模式。对于段模式,很自然仍然使用段:偏移来访问存储器地址。由于保护模式在32位系统上运行,因此网段的两个因素:基地址和限制也是32位。 IA-32允许将段的基地址设置为可以用32位表示的任何值(可以将限制设置为可以用32位表示的任何值,该值是2 ^ 12的倍数)与实时模式不同,段的基址只能是16的倍数(因为低4位是通过向左移而获得的,因此只能为0,从而实现16位的使用)段寄存器代表20位基址(目的),段的限制只能是64 KB的固定值。另外,顾名思义,保护模式为段模式提供了一种保护机制,这意味着段描述符需要指定其自己的访问权限(Access)。因此,在保护模式下,段的描述包括三个因素:[基地址,限制,访问],这些因素放在一个64位数据结构中,称为段描述符。在这种情况下,如果我们通过64位段描述符直接引用段,则必须使用64位段寄存器来加载段描述符。但是,为了保持向后兼容性,Intel仍将段寄存器指定为16位(尽管每个段寄存器实际上都有一个64位长的不可见部分,对于程序员来说,段寄存器是16位),则它是很明显,我们不能通过16位段寄存器直接引用64位段描述符。怎么办?

本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-350298-1.html
也许是之前中国放出去的