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

文章目录

  • 一、实模式寻址
  • 二、保护模式寻址
  • 三、参考资料

一、实模式寻址

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

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

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

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

二、保护模式寻址

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

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

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

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

三、参考资料

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

你可能感兴趣的:(操作系统)