实模式与保护模式的寻址方式

一、实模式寻址

  • CPU 在实模式下,地址总线只有 20 位,寻址空间为 1 M。

  • 20 位的目标物理地址取决于两个条件,一是 16 位的段基址,二是 16 位的偏移地址。

  • 20 位目标物理地址 = ( 16 位段基址 << 4 ) + 16 位偏移地址

  • 段基址由 16 位段寄存器给出,偏移地址由机器指令操作数给出。

二、保护模式寻址

  • CPU 在保护模式下,地址总线有 32 位,寻址空间为 4 G。

  • 32 位的目标物理地址取决于两个条件,一是 16 位的段选择子 S S ,二是 32 位的偏移地址 O O

  • 16 位的段选择子由 16 位段寄存器给出,偏移地址由机器指令操作数给出。

  • 16 位段寄存器的高 13 位(第 3~15 位共 13 位)作为全局描述符表中对应段描述符的索引,找到段描述符后,取出其中的 32 位段基址 B B ,20 位段界限 L L 和 1 位粒度标志 G G ,设段最大长度为 X X ,若 G G 为 1,则 X = L X = L ,若 G G 为 0,则 X = L × G X = L\times G 。通过特权级检查后,则取出偏移地址 O,若 O &gt; X O &gt; X ,则触发异常,若 O &lt; = X O &lt;= X ,则允许访问。

三、参考资料

《深入分析 Linux 内核源代码》 陈莉君 编著
《计算机组成与系统结构(第 2 版)》袁春风 主编

猜你喜欢

转载自blog.csdn.net/weixin_36725931/article/details/85200382