`
izuoyan
  • 浏览: 9224059 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

80386控制寄存器

阅读更多

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 基地址 界限

BIT15—BIT0
局部描述符表寄存器LDTR 选择子
任务状态段寄存器TR 选择子
BIT31—BIT0 BIT31—BIT0 BIT11—BIT0
基地址 界限 属性
基地址 界限 属性


<一>控制寄存器
从上表可见,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的内容,从而查出线性地址空间中的哪一页引起本次异常。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangmiaoping23/archive/2008/11/21/3345506.aspx

分享到:
评论

相关推荐

    80386控制寄存器和系统地址寄存器参照.pdf

    80386控制寄存器和系统地址寄存器参照 本资源主要介绍80386控制寄存器和系统地址寄存器的相关知识点,包括控制寄存器CR0、CR1、CR2和CR3的作用、控制寄存器CR0中的位的作用、保护控制位、协处理器控制位、CR2和CR3...

    8086语言编汇寄存器详解

    这些寄存器在8086的指令系统中扮演着关键角色,数据传送指令、算术运算指令、逻辑运算指令、串操作指令、控制转移指令、处理器控制指令以及保护方式指令都依赖于它们来执行。通过理解和熟练使用这些寄存器,开发者...

    80x86汇编语言程序设计教程

    10.3 80386控制寄存器和系统地址寄存器 10.3.1 控制寄存器 10 3.2 系统地址寄存器 10.4 实方式与保护方式切换实例 10.4.1 演示实方式和保护方式切换的实例(实例一) 10.4.2 演示32位代码段和16位代码段切换的实例...

    80X86汇编语言程序设计

    **10.3 80386控制寄存器和系统地址寄存器** - **控制寄存器**:控制处理器的各种特性。 - **系统地址寄存器**:用于存储处理器状态和配置信息。 **10.4 实方式与保护方式切换实例** - **演示实方式和保护方式切换...

    DrX调试寄存器使用 一例子

    - **Dr7**:这是控制寄存器,用于定义哪些硬件断点处于活动状态,以及是否启用单步模式。 #### 调试寄存器使用流程 1. **初始化断点地址**:首先,需将目标地址加载到Dr0至Dr3之一的寄存器中,以便设置硬件断点。 ...

    保护模式下的80386及其编程

    保护模式是80386相对于其前代8086和80286的重要进步,它通过引入段选择子和描述符表来实现对内存访问的控制。每个段选择子指向一个描述符,描述符包含了段的基地址、限制长度以及访问权限等信息。这种机制允许系统...

    第二章Linux运行的硬件基础1

    3. **状态和控制寄存器**:这些寄存器负责监控和控制处理器的状态,如标志寄存器(Flag Register)记录运算结果的状态,如进位标志(CF),以及控制寄存器(Control Registers)用于控制处理器的各种模式和特性。...

    intel 80386 programmer's reference manual.zip

    1. 寄存器:80386拥有丰富的寄存器集,包括通用寄存器、段寄存器、标志寄存器、控制寄存器和调试寄存器。这些寄存器在程序执行中起到关键作用,例如存储数据、地址和控制信息。 2. 指令集:手册详细列出了i386支持...

    80386asm汇编语言

    1. **指令集**:80386拥有丰富的指令集,包括数据处理指令(如加法、减法、逻辑运算等)、控制转移指令(如跳转、调用子程序等)、处理器控制指令(如设置标志寄存器、进入保护模式等)以及浮点运算指令等。...

    Intel 80386处理器简介

    80386包含多个控制寄存器,如CR0、CR2、CR3等,它们用于控制处理器的运行模式和内存管理功能。其中,CR0是最重要的,它能启用或禁用保护模式。CR3存储了当前进程的页目录基地址,用于虚拟地址到物理地址的转换。 2....

    80386汇编

    学习80386汇编通常涉及理解指令集、寄存器使用、内存模型、程序流程控制以及如何将汇编代码与高级语言(如C或C++)混合使用。80386汇编.chm文件很可能是一个包含详细80386汇编语言教程的CHM帮助文档,涵盖了相关指令...

    保护方式下80386及其编程

    这一部分详细解释了通用寄存器、控制寄存器、段寄存器的使用和注意事项。存储器寻址的概念部分,讲解了指令寻址方式和存储器数据访问,这对于理解和使用80386非常重要。寻址方式包括了段部分和偏移部分,还包括程序...

    保护方式下的80386及其编程

    书中还涉及到了处理器的控制寄存器,这是CPU运行时用来存储和控制各种处理器状态的寄存器。它们包括段表基地址寄存器、任务状态段格式等。控制寄存器是操作系统用来管理硬件的重要工具。 对于中断和异常的处理,书...

    微机系统与接口:80386 微处理器.ppt

    寄存器结构是80386的重要组成部分,包括7类寄存器:通用寄存器、段寄存器、指令指针和标志寄存器、控制寄存器、系统地址寄存器、调试寄存器以及测试寄存器。通用寄存器扩展到了8个32位的寄存器,如EAX、EBX等,增强...

    Intel 80386 程序员手册 中文 1、2、4、5、6、7、8、9、10、14章

    这里详细介绍了80386的系统寄存器,包括控制寄存器、调试寄存器等,这些寄存器用于控制处理器的行为和状态。 #### 4.2 系统指令(System Instructions) 这一节将介绍一系列用于控制和查询系统寄存器的指令。 ### ...

    Intel 80386Intel 80386微处理器的基本结构的基本结构

    寄存器方面,80386拥有34个寄存器,包括4个通用寄存器、2个变址寄存器、3个指针寄存器、6个段寄存器、6个段描述寄存器、1个标志寄存器和其他特殊用途的控制、地址和调试寄存器。标志寄存器中包含了兼容模式、保护...

    intel 80386程序员参考手册

    1. **指令系统**:80386拥有丰富的指令集,包括算术运算、逻辑运算、位操作、控制转移、字符串处理等。理解每个指令的功能、操作和执行效率对于编写底层代码至关重要。 2. **寻址模式**:80386支持多种寻址模式,如...

Global site tag (gtag.js) - Google Analytics