保护模式 x86 控制寄存器

有些话、适合烂在心里 提交于 2020-01-23 02:01:41

控制寄存器

目录


控制寄存器用户控制和确定CPU的操作模式.

Cr0 Cr1 Cr2 Cr3 Cr4(注意跟DR0-DR7分开)
Cr1 保留
Cr3 页目录表基址

Cr0寄存器

在这里插入图片描述

PE 位 [0]

PE = Protection Enable(启用保护) PE = 1 保护模式
PE = 0 实地址模式

该标志位仅开启段级保护,而并没有启用分页机制.若要启用分页机制,那么PE和PG标志都要置位.

PG 位 [31]

当设置该位时即开启了分页机制.在开启这个标志之前必须已经或者同时开启PE标志.

PG = 0 且 PE = 0 处理器工作在实地址模式下.
PG = 0 且PE = 1 处理器工作在没有开启分页机制的保护模式下
PG = 1 且PE = 0 该情况不存在,PE = 0 无法开启 PG  
PG = 1 且PE = 1 处理器工作在开启分页机制的保护模式下

WP 位 [16]

对于Intel 80486或以上的CPU,CR0的位16是写保护(Write Proctect) 标志 当设置该标志时,处理器会禁止超级用户程序(例如特权级0的程序)向用户级只读页面执行写操作;

当CPL<3的时候:

如果 WP = 0 可以读写任意 用户级物理页,只要线性地址有效.

如果 WP = 1 可以读取任意 用户级物理页,但对于只读的物理页,则不能写.

Cr2 寄存器

在这里插入图片描述

当CPU访问某个无效的页面,会触发缺页异常,此时,CPU会将引起异常的线性地址存放在CR2中

就是保存触发异常的线性地址,以便处理异常后的继续执行或者报错

Cr4 寄存器

在这里插入图片描述

PAE 位 [5]

PAE = 1 是 2-9-9-12分页
PAE = 0 是 10-10-12分页

PSE 位 [4]

PSE = 1 会根据PDE的属性位P/S 来区分大小页

在这里插入图片描述

PSE = 0 PDE的P/S位失效,不管P/S位值是多小,页的大小都是4K

在这里插入图片描述

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!