cpu 3 模式

参考 blog

按照 CPU 功能升级迭代的顺序,CPU 的工作模式有实模式、保护模式、长模式。他们的主要区别是寻址方式和指令权限。下文以 x86_64 为例

实模式

实模式寄存器

每个 16 bit 大小,可以分成 H 和 L 两个。下图的右半边的寄存器。

寄存器

实模式寻址

  • 寻址范围
    8086 cpu 的地址总线有 20 位,所以寻址范围 2**20 = 1 MB(后续的 cpu 兼容了实模式的寻址方法)

  • 寻址方式
    寄存器 16 位,地址有 20 位,为了访问更高的内存引入了段式内存管理——8086CPU将1MB存储空间分成许多逻辑段,每个段最大限长为64KB(但不一定就是64KB)。这样每个存储单元就可以用“段基地址+段内偏移地址”表示段基地址由16位段寄存器值左移4位表达,段内偏移表示相对于某个段起始位置的偏移量。

实模式中断

保护模式

保护模式寻址

            段机制              分页机制

逻辑地址---------->线性地址-------------->物理地址

和实模式直接把段基址放在寄存器当中的做法不一样。保护模式设置了 GDT 段描述符表,寄存器里面存放了段的序号。

保护模式新增了对段落的权限检查,比如读写权限等等:

保护模式的中断同理,也增加了权限检查

长模式

长模式寻址

x 86-64 体系结构在长模式(64 位模式)下不使用分段。其中四个段寄存器:CS、SS、DS 和 ES 强制为 0,限制为 2^64。长模式访存

posted @ 2023-08-20 14:44  giacomo捏  阅读(43)  评论(0编辑  收藏  举报