控制寄存器
目录
控制寄存器用户控制和确定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
来源:CSDN
作者:_愚
链接:https://blog.csdn.net/superchickenchicken/article/details/103929543