80386控制寄存器
来源:互联网 发布:app美工设计招聘 编辑:程序博客网 时间:2024/06/07 21:05
80386控制寄存器和系统地址寄存器如下表所示。它们用于控制工作方式,控制分段管理机制及 分页管理机制的实施。
控 制 寄存器 | CRx | BIT31 | BIT30—BIT12 | BIT11—BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 |
CR0 | PG | 0000000000000000 | ET | TS | EM | MP | PE | ||
CR1 | 保留 | ||||||||
CR2 | 页故障线性地址 | ||||||||
CR3 | 页目录表物理页码 | 000000000000 |
BIT47—BIT16 | BIT15—BIT0 | |
全局描述符表寄存器GDTR | 基地址 | 界限 |
中断描述符表寄存器IDTR | 基地址 | 界限 |
|
|
<一>控制寄存器
从上表可见,80386有四个32位的控制寄存器,分别命名位CR0、CR1、CR2和CR3。但CR1被保留, 供今后开发的处理器使用,在80386中不能使用CR1,否则会引起无效指令操作异常。CR0包括指 示处理器工作方式的控制位,包含启用和禁止分页管理机制的控制位,包含控制浮点协处理器 操作的控制位。CR2及CR3由分页管理机制使用。CR0中的位5—位30及CR3中的位0至位11是保留 位,这些位不能是随意值,必须为0。
控制寄存器CR0的低16位等同于80286的机器状态字MSW。
1.保护控制位
控制寄存器CR0中的位0用PE标记,位31用PG标记,这两个位控制分段和分页管理机制的操作, 所以把它们称为保护控制位。PE控制分段管理机制。PE=0,处理器运行于实模式;PE=1,处理 器运行于保护方式。PG控制分页管理机制。PG=0,禁用分页管理机制,此时分段管理机制产生 的线性地址直接作为物理地址使用;PG=1,启用分页管理机制,此时线性地址经分页管理机制 转换位物理地址。关于分页管理机制的具体介绍在后面的文章中进行。
下表列出了通过使用PE和PG位选择的处理器工作方式。由于只有在保护方式下才可启用分页机 制,所以尽管两个位分别为0和1共可以有四种组合,但只有三种组合方式有效。PE=0且PG=1是 无效组合,因此,用PG为1且PE为0的值装入CR0寄存器将引起通用保护异常。
需要注意的是,PG位的改变将使系统启用或禁用分页机制,因而只有当所执行的程序的 代码和至少有一部分数据在线性地址空间和物理地址空间具有相同的地址的情况下,才 能改变PG位。
PG和PE 位与处 理器工 作模式 | PG | PE | 处理器工作方式 |
0 | 0 | 实模式 | |
0 | 1 | 保护模式,禁用分页机制 | |
1 | 0 | 非法组合 | |
1 | 1 | 保护方式,启用分页机制 |
2.协处理器控制位
控制寄存器CR0中的位1—位4分别标记为MP(算术存在位)、EM(模拟位)、TS(任务切换位) 和ET(扩展类型位),它们控制浮点协处理器的操作。
当处理器复位时,ET位被初始化,以指示系统中数字协处理器的类型。如果系统中存在 80387协处理器,那么ET位置1;如果系统中存在80287协处理器或者不存在协处理器,那 么ET位清0。
EM位控制浮点指令的执行是用软件模拟,还是由硬件执行。EM=0时,硬件控制浮点指令 传送到协处理器;EM=1时,浮点指令由软件模拟。
TS位用于加快任务的切换,通过在必要时才进行协处理器切换的方法实现这一目的。每 当进行任务切换时,处理器把TS置1。TS=1时,浮点指令将产生设备不可用(DNA)异常。 MP位控制WAIT指令在TS=1时,是否产生DNA异常。MP=1和TS=1时,WAIT产生异常;MP=0时 ,WAIT指令忽略TS条件,不产生异常。
3.CR2和CR3
控制寄存器CR2和CR3由分页管理机制使用。
CR2用于发生页异常时报告出错信息。当发生页异常时,处理器把引起页异常的线性地址 保存在CR2中。操作系统中的页异常处理程序可以检查CR2的内容,从而查出线性地址空 间中的哪一页引起本次异常。
CR3用于保存页目录表的其始物理地址。由于目录是页对齐的,所以仅高20位有效,低12 位保留未用。向CR3中装入一个新值时,低12位必须为0;但从CR3中取值时,低12位被忽 略。每当用MOV指令重置CR3的值时,会导致分页机制高速缓冲区的内容无效,用此方法, 可以在启用分页机制之前,即把PG位置1之前,预先刷新分页机制的高速缓存。CR3寄存 器即使在CR0寄存器的PG位或PE位为0时也可装入,如在实模式下也可设置CR3,以便进行 分页机制的初始化。在任务切换时,CR3要被改变,但是如果新任务中CR3的值与原任务 中CR3的值相同,那么处理器不刷新分页高速缓存,以便当任务共享也表时有较快的执行 速度。
80386 增加了几个控制寄存器, CR0 CR1 CR2 CR3 CR4. 其中CR1为保存寄存器.
控制寄存器CR0中的位0用PE标记,位31用PG标记,这两个位控制分段和分页管理机制的操作,所以把它们称为保护控制位。PE控制分段管理机制。PE=0,处理器运行于实模式;PE=1,处理器运行于保护方式。PG控制分页管理机制。PG=0,禁用分页管理机制,此时分段管理机制产生的线性地址直接作为物理地址使用;PG=1,启用分页管理机制,此时线性地址经分页管理机制转换位物理地址。
PG和PE 位与处 理器工 作模式 | PG | PE | 处理器工作方式 |
0 | 0 | 实模式 | |
0 | 1 | 保护模式,禁用分页机制 | |
1 | 0 | 非法组合 | |
1 | 1 | 保护方式,启用分页机制 |
CR3 保存页目录的起始物理地址.
CR2用于发生页异常时报告出错信息。当发生页异常时,处理器把引起页异常的线性地址保存在CR2中。操作系统中的页异常处理程序可以检查CR2的内容,从而查出线性地址空间中的哪一页引起本次异常。
- 80386控制寄存器
- 80386控制寄存器
- 80386控制寄存器
- 80386控制寄存器
- 控制寄存器
- 控制寄存器
- 控制寄存器
- 控制寄存器
- 控制寄存器
- 控制寄存器
- 803686的控制寄存器
- 修改控制寄存器GPBCON
- 8051内部控制寄存器
- 6410 SDRAM控制寄存器
- 状态和控制寄存器
- arm中断控制寄存器
- 8051中断控制寄存器
- 控制寄存器详解
- 三星目前提供免费的Certified Signing
- 客户端为UltraWebGrid增加新行
- 关于PEAR DB的使用
- Spring的四种声明式事务的配置-Hibernate事务
- 存储过程总结
- 80386控制寄存器
- 大白话版本的 软件工程实践者的思想
- OpenSolaris project Brussels wite paper
- 开始好好利用这块资源了。。。
- 编码的故事
- 根据取到文件的内容 生成二进制文件 并通过servlet获取
- *xdata a 和 xdata *a
- 发现新天地 - Google Sky
- 对当前虚拟货币问题的思考(上)