80386的寄存器组成
80386重要寄存器和数据结构

80386重要寄存器和数据结构描述符(Descriptor)具有固定长度的结构体(struct),共8个字节。
这个结构体保存着一个段基地址的所有信息,包含:1.段基地址2.段长度3.段属性描述符有两种,这两种结构体包含的内容几乎都一样,只有一些细小的差别,这两种描述符分别是:1.非系统描述符:用来描述数据段,代码段和堆栈段的结构;2.系统段描述符:用来描述LDT和TSS的,(LDT和TSS在后面有说明)。
全局描述符表(GDT: Global Descripter Table)顾名思义,它是一个表结构。
这个表存储在内存中,相当于C语言中的一个结构体数组。
数组的每一项就是上面所说的描述符。
GDT在一个多任务系统中一般只设置一个,其基址由一个GDTR确定(GDT靠GDTR定位),GDT地址在设置好之后几乎不会被改变。
这个表中可以包含如下四种信息的描述符:1.全局数据段,代码段和堆栈段信息。
这些段一般由操作系统内核使用。
2.对LDT的描述,这个描述符的基址就是是LDT所在内存中的起始地址3.对TSS的描述,这个描述符的基址是TSS所在内存中的起始地址4.一些门描述符(调用门,中断门等…)。
其中#1属于非系统段描述符,#2 #3 #4属于系统段描述符。
描述符各自的属性值决定了它们具体是哪类描述符。
其中,LDT,TSS属于具体每个任务,一般成对出现在GDT中。
全局描述符表寄存器(GDTR:Global Descripter Table Register)GDTR是一个CPU寄存器,和AX BX.. CS DS...一个概念。
GDTR共48位,包含两部分内容:1.开头32位用来保存一个内存地址,指出GDT在内存中的位置(如果没有开启分页,它就是一个32位的物理地址);2.随后16位为GDT的长度信息,即GDT共有有多少项。
局部描述符表(LDT:Local Descripter Table)与GDT的结构类似,所不同的是,LDT用来描述每个具体用户任务代码段,堆栈段和数据段信息。
5.现代微机结构_80386

引脚ERROR
1: 表示是80287, 或者无协处理器
通过执行指令来识别: 指令1 FNINIT 指令2 IN (控制寄存器)
区分有无协处理器 Di
R +5V
若读出的值为0, 则将1→MP, 0→ET 若读出的值为不为0, 则0→MP
(2) CR1: 未使用 (3) CR2: 页故障地址寄存器, 存放出现故障的页 的32位线性地址 (4) CR3: 页目录基地址寄存器, 存放页目录表的 基地址。
二级表的地址转换过程:
将虚拟地址的高20位分成两部分, 分别用于指示 两种不同表的表项(作为表内的偏移量)。 如下图所示:
31 22 21 12 11 0
线性地址 页目录偏移
页表偏移
页内偏移
D31~D22指示1024个目录项的一项, 该项的
内容为一个页表的基地址;
D21~D12指示1024个页表项的一项, 该项的内
2、分页管理
CR0中的PG位=0, 不允许分页, 经分段部件出来 的地址(即线性地址=物理地址);
如果PG=1, 则允许分页, 经分段部件出来的线性地 址仍为虚地址, 必须经分页部件转换成物理地址。
(1) 分页的寻址过程 从虚地址到实地址的转换过程 目标: 根据线性地址, 得到物理页面基地址以及 该页面内的偏移量 假设: 基于简单查表的转换机构, 用虚拟页号查表, 表中内容为实际页面的基地址 如下图所示:
SRAM
OE WE CS
D7~D0
SRAM BE0 BE1 BE2
OE WE CS
D15~D8
SRAM
OE WE CS
D23~D16
BE3
地址 地址 译码
SRAM
80386的特殊寄存器

状态和控制寄存器状态和控制寄存器是由标志寄存器EFLAGS 、指令指针EIP 和4个控制寄存器组成,如图所示:1.指令指针寄存器和标志寄存器指令指针寄存器EIP 中存放下一条将要执行指令的偏移量(offset ),这个偏移量是相对于目前正在运行的代码段寄存器CS 而言的。
偏移量加上当前代码段的基地址,就形成了下一条指令的地址。
EIP 中的低16位可以分开来进行访问,给它起名叫指令指针IP 寄存器,用于16位寻址。
标志寄存器EFLAGS 存放有关处理器的控制标志,如图所示。
标志寄存器中的第1、3、5、15位及18~31位都没有定义。
标志寄存器EFLAGS在这些标志位中,我们只介绍在Linux 内核代码中常用且重要的几个标志位:第8位TF (Trap Flag )是自陷标志,当将其置1时则可以进行单步执行。
当指令执行完后,就可能产生异常1的自陷(参看第四章)。
也就是说,在程序的执行过程中,每执行完一条指令,都要由异常1处理程序 (在Linux 内核中叫做debug())进行检验。
当将第8位清0后,且将断点地址装入调试寄存器DR0~DR3时,才会产生异常1的自陷。
第12、13位IOPL 是输入输出特权级位,这是保护模式下要使用的两个标志位。
由于输入输出特权级标志共两位,它的取值范围只可能是0、1、2和3共4个值,恰好与输入输出特权级0~3级相对应。
但Linux内核只使用了两个级别,即0和3级,0表示内核级,3表示用户级。
在当前任务的特权级CPL(Current Privilege Level)高于或等于输入输出特权级时,就可以执行像IN、OUT、INS、OUTS、STI、CLI和LOCK等指令而不会产生异常13(即保护异常)。
在当前任务特权级CPL为0时,POPF(从栈中弹出至标志位)指令和中断返回指令IRET可以改变IOPL字段的值。
第9位IF(Interrupt Flag)是中断标志位,是用来表示允许或者禁止外部中断(参看第四章)。
80386 和 保护模式

80386 和保护模式___William LiuIntel CPU 一般可以运行在两种模式之下,即实模式和保护模式。
早期的 Intel CPU ( 8086 , 8088 )只能工作在实模式之下,系统中只能运行单个任务,而且只能使用实地址模式。
对于 Intel 80386 以上的芯片则还可以运行在 32 位的保护模式之下。
在保护模式之下的 CPU 可以支持多任务;支持 4GB 的物理内存;支持 64TB 的虚拟内存;支持内存的页式管理和段式管理以及支持特权级。
本文档将首先介绍 Intel 80386 CPU 的几个内部寄存器,然后再由浅入深的分别介绍保护模式下的段式管理,页式管理,虚拟内存,多任务以及特权级管理等几个方面。
Intel 80386 CPU 的内部寄存器这一部分先大致介绍一下 386 的内部寄存器,具体细节在后面的几节中再详细说明。
一般来说, CPU 设计用来系统编程的系统寄存器包括如下几类:•标志寄存器 (EFLAGS)•内存管理寄存器 (GDTR , LDTR , IDTR , TR)•控制寄存器 (CR0 , CR1 , CR2 , CR3 , CR4)•兼容 8086 通用寄存器( EAX , EBX , ECX , EDX )•兼容 8086 段寄存器( CS , DS , ES , SS , FS , GS )•兼容 8086 数据寄存器( ESI , EDI , EIP , ESP )下面分别加以介绍:1) 标志寄存器 EFLAGS :跟 8086/8088 的 FLAGS 大致差不多。
只不过位宽由 16bit 变成了 32bit ,负责的状态标志也多了一些。
见图一所示:图一: EFLAGS 的结构其中系统标志: VM -虚拟 8086 模式; RF -恢复标志; NT -任务嵌套标志;IOPL - I/O 特权级标志; IF -中断允许标志。
2) 内存管理寄存器:一共有 4 个,用于分段内存管理,都是用于存放指针的,只是所指的再内存单元中的内容有所不同。
第二章 32位微处理器80386结构讲解

CS DS SS ES FS GS
0 AL 累加器 BL 基址寄存器 CL 计数器 DL 数据寄存器
堆栈指针 基址指针 源变址 目的变址
指令指针 标志寄存器
代码段 数据段 堆栈段 附加段 附加段 附加段
80386~Pentium Pro 的基本寄存器
24
(1)通用寄存器
8个32位通用寄存器EAX、EBX、ECX、EDX、 ESP、EBP、ESI、EDI都是由8086/8088中的8个 16位通用寄存器扩展位数而来,它们的低16位可以 独立存取,以便与8086/8088兼容,名称分别称为 AX、BX、CX、DX、SP、BP、SI和DI。其中前4 个寄存器还可进一步分别分为两个8位寄存器,分别 称为AH、AL,BH、BL,CH、CL,DH和DL。
8
计算机流水线一般分为指令流水线和运算流水线 两种。
80年代初出现RISC后,即把流水线技术作为首选 技术,在RISC中最初的目标是每个时钟周期执行1 条指令,后来提出在1个时钟周期执行多条指令的 目标,于是便出现了超流水线 (Superpipelined)、超标量(Superscalar)等 体系结构。
1. 有关技术名词简介
• CISC和RISC CISC是复杂指令集计算机(Complex
Instruction Set Computer)的英文缩略 语。是指以微程序为基础、具有较复杂指令 系统的计算机
2
在60年代到80年代初期这一阶段中,以微程序控 制器为基础的处理机占主流地位,IBM公司从60 年代初开始把计算机产品系列化并做到软件兼容后, 处理机体系结构设计中采用微程序技术作为控制指 令执行的控制器的基础,在当时是比较适合的。因 为在一个产品系列中,低档机指令系统中的指令的 基本操作,可以以微程序方式存放在微存储器中 (只读存储器),这个微存储器称为“核”。
《微机原理与接口技术(80386-Pentium)》-第3章80486系统原理

标志寄存器中的位17是虚拟8086方式位 VM 标志寄存器中的位16是恢复标志位RF 标志寄存器中的位16是恢复标志位RF 标志寄存器中的位14是嵌套任务标志NT 标志寄存器中的位14是嵌套任务标志NT 标志寄存器中的位13、位12是输入/输出 特权级标志位IOPL 溢出标志位11F
3.1.3 80486微体系结构
80486微处理机的微体系结构包括有9个功能部件, 它们分别是: ①总线接口部件。 ②片内高速缓冲存储器Cache。 ③指令预取部件。 ④指令译码部件。 ⑤控制部件。 ⑥整数运算和数据通路。 ⑦浮点部件。 ⑧分段部件。 ⑨分页部件。
12
4.段寄存器
80486 配备有6个16位的段寄存器,段寄存器 也叫选择符 (Selector)。它们的名字和用途 与80386 的一样,其名称分别是: 代码段寄存器 CS 数据段寄存器 DS 堆栈段寄存器 SS 附加数据段寄存器 ES 附加数据段寄存器 FS 附加数据段寄存器 GS
2
3.1.1 寄存器组
Intel为了在代码级向上兼容,80486微处理机 在硬件设计上,在许多地方与80386微处理机 都保持兼容。 80486微处理机所具有的寄存器种类和数量都 非常多。它的寄存器既有80386微处理机中使 用的全部寄存器,又有80387数值协同处理器 中使用的各种寄存器。80486• 处理机的寄存 微 器种类可分为以下几种:
7
3.标志寄存器EFLAGS
80486的标志寄存器是一个32位寄存器,如图3.3所 示。它的作用是用来存放有关80486微处理机的状态 标志信息、控制标志信息以及系统标志信息。 80486的状态标志信息报告的是算术运算类指令在执 行完之后的机器状态。控制标志仅有一个即DF标志, 用来控制串操作过程中执行方向问题,即是给目标变 址寄存器EDI、源变址寄存器EDI、源变址寄存器 ESI 增值还是增负值(减值)问题。系统标志信息用来控 制输入/输出、屏幕中断、调试、任务转换和控制保 护模式与虚拟8086模式间的转换等操作。 对绝大多数系统来说,若通过应用程序改变系统标志 寄存器中的标志状态,都将引起一个异常事故出现。 拿80486的标志寄存器与 80386的标志寄器进行比较 后会发现,二者几乎完全一样。 8
汇编学习笔记(15)-80386从16位32位

汇编学习笔记(15)-80386从16位32位简述 80386相⽐于8086 地址线从20位扩展为32位,这意味着80386可以最多访问4G的内存,同时所有的寄存器都扩展为32位寄存器,80386扩展了原来的寄存器,增加了⼀些新的指令,并增加了新的寄存器 80386的寄存器主要分如下⼏类:通⽤寄存器,段寄存器,指令寄存器,标志位寄存器,系统地址寄存器,控制寄存器,测试寄存器,调试寄存器。
80386的指令集也⼤多集成8086的指令集,只是将其扩充为32位寄存器⽽已。
寄存器通⽤寄存器通⽤寄存器是在8086的8个通⽤寄存器(AX,BX,CX,DX,BP,SP,SI,DI)的基础上将其扩展了32位寄存器,名称为在原先的名字前⾯加了个E,分别为EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI原先的16位和8位寄存器即 AX, AL ,AH等都还是可以使⽤的,同时AX 是EAX的低16位,类似于 AX和AL的关系,EAX的⾼16位⽆法单独使⽤。
段寄存器原先的段寄存器保持不变还是16位,同时增加了FS 和 GS两个新的段寄存器(这两寄存器的全称是啥没查到)指针寄存器扩展为32位,改名为EIP,IP仍然有效,是EIP的低16位标记寄存器标志寄存器也扩展为32位,并层架如下四个标志位 IO 特权(IOPL): 当执⾏IO指令的时候需要IO的特权级⼩于等于此标志位,占2位 嵌套任务标志(NT): ⽤来指⽰中断返回指令 IRET的⼯作⽅式 重启标志(RF): 与故障和调试有关 虚拟8086标志(VM): 表⽰当前⼯作在虚拟8086模式下控制寄存器R0:PG: 分页控制 PG=1: 启⽤内存的分页管理模式 PG=0: 禁⽤内存的分页管理模式PE: 分段控制 PE=1: 启⽤内存的分段管理模式, 同时进⼊保护模式 PE=0: 禁⽤内存的分段管理模式, 同时进⼊实模式MP: 算数存在位EM: 模拟位EM=0: 硬件执⾏浮点指令运算EM=1: 软件模拟浮点执⾏运算TS: 任务切换位ET: 扩展位R1: 保留未使⽤R2: 缺页中断时存储缺的页的地址R3: 页⽬录的地址,只能⽤前20位,后20位必须为0,所以是4K对齐的系统地址寄存器先简单介绍⼀下,在下⼀章会详细介绍他们GDTR: 全局表描述符表寄存器 48位,存放全局段描述符表的地址,前32位存放基地址,后16位是表界限,单位1字节。
80386保护模式工作原理

DPL
TYPE
描述符表
描述符可用于描述多种对象:存储段、任务状态 段、调用门、任务门、中断门、陷阱门和LDT。 为了便于组织管理,80386把描述符组织成线性表。 由描述符组成的线性表称为描述符表。 每个描述符表本身形成一个特殊的内存数据段。 这样的特殊数据段最多包含8192个描述符。该段 由操作系统维护、并由处理器中的存储管理单元 硬件(MMU)访问。 在80386中有三种类型的描述符表:全局描述符表 GDT、局部描述符表LDT 和 中断描述符表IDT。 在整个系统中,全局描述符表GDT和中断描述符 表IDT只有一张,局部描述符表可以有若干张,每 个任务有一张。
两级页表结构
表项格式
P位表示该表项是否有效。P=1表项有效;P=0表项无效。 在通过页目录表和页表进行地址转换过程中,无论在页目 录表还是在页表中遇到无效表项,都会引起缺页异常。 处理器在访问过某个表项之后总是将其A位置1。一般由操 作系统将其周期性的刷新为0。 处理器在对某个物理页进行过写操作之后,总是将其所对 应的页表中表项的D位置1。 U/S和R/W位用于对页进行保护。
对输入/输出的保护
80386采用I/O特权级IPOL和I/O许可位图的方法来控制输入 /输出,实现输入/输出保护。 IOPL存放在标志寄存器EFLAG中,它规定了可以执行所有 与I/O相关的指令和访问I/O空间中所有地址的最低特权级。 只有当CPL <=IOPL时,才被允许随意访问I/O空间中的任 何地址。 每个任务都有一个I/O许可位图,它由二进制位串组成。位 串中的每一位依次对应一个I/O地址。 I/O许可位图存放在 每个任务所对应的任务状态段(TSS)中。 当CPL > IOPL时,如果该指令所访问的I/O地址所对应的当 前任务的I/O许可位为0,则80386允许该I/O操作,如果I/O 许可位为1,则禁止该I/O操作。 IOPL的设置和I/O许可位图的创建只能由操作系统进行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
80386共提供7种类型的32位寄存器,如下:1.通用寄存器(EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI)2.段寄存器(CS、SS、DS、ES、FS、GS)3.指令指针寄存器和标志寄存器(EIP、EFLAGS)4.系统表寄存器(GDTR、IDTR、LDTR、TR)5.控制寄存器(CR0、CR1、CR2、CR3、CR4)6.调试寄存器(DR0、DR1、DR2、DR3、DR4、DR5、DR6、DR7)7.测试寄存器(TR6、TR7)其中后三类寄存器是80386以后的CPU才有的,以前的CPU完全没有。
下图是前四类寄存器的大致示意图:本文只对这些寄存器做一个大致的介绍,其中有些特殊且有较大意义的寄存器,会另文介绍。
一、通用寄存器一组八个通用寄存器是对8086/80286通用寄存器的32位扩展,其用法与在8086/80286中相似,支持8位、16位、32位操作,进行32位操作是,寄存器名称前面冠以“E”。
这八个寄存器的名称如下:EAX(累加器)、EBX(基址)、ECX(计数)、EDX(数据)、ESP(栈指针)、EBP(基址指针)、ESI(源变址)、EDI(目的变址)。
二、段寄存器80386比8086/80286增加了两个段寄存器FS、GS。
除CS支持代码段,SS支持堆栈段外,程序员可以利用其它的所有段寄存器支持数据段。
每个段寄存器对应这一个64位高速缓存器(有些资料中说有96位,但值使用其中的64位),这在8086中是没有的(在80286中为48位),它的具体作用将另文介绍。
三、指令指针寄存器和标志寄存器指令寄存器EIP是对8086/80286指令指针寄存器的32位扩展,它包含着待执行指令的32位偏移量,该值总是相对CS所代表的段基址而言的。
标志寄存器也是对8086/80286标志寄存器的32位扩展,其定义如下(这张图截自Intel关于IA32架构的最新文档):其中OF、DF、IF、TF、SF、ZF、AF、PF和CF在8086中就已经存在,请参考相关资料。
IOPL(I/O Privilege Level)是从80286开始出现的,占2个bit表示I/O特权级,如果当前特权级小于或等于IOPL,则可以执行I/O操作,否则将出现一个保护性异常。
IOPL只能由特权级为0的程序或任务来修改。
NT(Nested Task)也是从80286开始出现的,表示嵌套任务,用于控制中断返回指令IRET,当NT=0时,用堆栈中保存的值恢复EFLAGS、CS和EIP,从而实现返回;若NT=1,则通过任务切换实现中断返回。
下面的标志位是80386以后的CPU才有的标志。
VM(Virtual-8086 mode)表示虚拟8086模式,如果VM被置位且80386已出于保护模式下,则CPU切换到虚拟8086模式,此时,对段的任何操作又回到了实模式,如同在8086下运行一样。
RF(Resume flag)表示恢复标志(也叫重启标志),与调试寄存器一起用于断点和单步操作,当RF=1 时,下一条指令的任何调试故障将被忽略,不产生异常中断。
当RF=0时,调试故障被接受,并产生异常中断。
用于调试失败后,强迫程序恢复执行,在成功执行每条指令后,RF自动复位。
AC(Alignment check)表示对齐检查。
这个标志是80486以后的CPU才有的。
当AC=1且CR0中的AM=1时,允许存储器进行地址对齐检查,若发现地址未对齐,将产生异常中断。
所谓地址对齐,是指当访问一个字(2字节长)时,其地址必须是偶数(2的倍数),当访问双字(4字节长)时,其地址必须是4的倍数。
但是只有运行在特权级3的程序才执行地址对齐检查,特权级0、1、2忽略该标志。
VIF(Virtual interrupt flag)表示虚拟中断标志。
以下的三个标志是Pentium以后的CPU才有的。
当VIF=1时,可以使用虚拟中断,当VIF=0时不能使用虚拟中断。
该标志要和下面的VIP和CR4中的VME 配合使用。
VIP(Virtual interrupt pending flag)表示虚拟中断挂起标志。
当VIP=1时,VIF有效,VIP=0时VIF无效。
ID(Identification flag)表示鉴别标志。
该标志用来只是Pentium CPU是否支持CPUID的指令。
实际上,如果不编写操作系统,大部分标志可能很难得用到一次,有个印象就好了,用到了再去查不迟。
四、系统表寄存器80386 中有4个系统表寄存器,分别是全局描述符表寄存器(GDTR)、中断描述符表寄存器(IDTR)、局部描述符表寄存器(LDTR)、任务状态寄存器(TR)。
系统表寄存器用于在保护方式下,管理4 个系统表,由于只能在保护方式下使用,因此又称为保护方式寄存器。
有关描述附表的问题,另文介绍。
五、控制寄存器80386的控制寄存器有4个,其中CR1保留以后使用,从Pentium开始,又增加了一个CR4,CR0的低16位包含了与80286的MSW一致的位定义,保持了和80286的兼容,同时也兼容了从80286开始的两条指令LMSW/SMSW,其基本定义如下:CR0中各位含义如下:∙PE(Protection Enable)保护模式允许,PE=0表示CPU工作在实模式,PE=1表示CPU工作在保护模式∙MP(Monitor Coprocessor)监控协处理器,MP=1表示协处理器在工作,MP=0表示协处理器未工作。
∙EM(Emulation)协处理器仿真,当MP=0,EM=1时,表示正在使用软件仿真协处理器工作。
∙TS(Task Switched)任务转换,每当进行任务转换时,TS=1,任务转换完毕,TS=0。
TS=1时不允许协处理器工作。
以上4个定义从80286开始,下面的2个定义从80386开始存在∙ET(Extension Type)处理器扩展类型,反映了所扩展的协处理器的类型,ET=0为80287,ET=1为80387。
∙PG(Paging)页式管理机制使能,PG=1时页式管理机制工作,否则不工作。
从80486开始又增加了如下位定义。
∙NE(Numeric Error)数值异常中断控制,NE=1时,如果运行协处理器指令发生故障,则用异常中断处理,NE=0时,则用外部中断处理。
∙WP(Write Protect)写保护,当WP=1时,对只读页面进行写操作会产生页故障。
∙AM(Alignment Mask)对齐标志,AM=1时,允许对齐检查,AM=0时不允许,关于对齐,在EFLAGS 的AC标志时介绍过,在80486以后的CPU中,CPU进行对齐检查需要满足三个条件,AC=1、AM=1并且当前特权级为3。
∙NW(Not Write-through)和CD(Cache Disable),这两个标志都是用来控制CPU内部的CACHE 的,当NW=0且CD=0时,CACHE使能,其它的组合说起来比较复杂,如果有读者真的想搞清楚的话,可以参阅《Intel? 64 and IA-32 Architectures》中的“Software Developer’s Manual Volume 3A”这一册,在第10章对这两个标志的各种组合有比较详细的说明。
CR1保留未用;CR2存放引起页故障的线性地址,只有在PG=1时,CR2才有效,当页故障处理程序被激活时,压入页故障处理程序堆栈中的错误码提供页故障的状态信息。
CR3的bit12--bit31存放页目录的基地址,因为也目录总是页对齐的(一页为4K),所以页目录基地址从bit12开始就可以了。
只有当CR0中的PG=1时,CR3的页目录基地址才有效。
从80486开始,在CR3的低12位定义了两个控制位,如下:∙PCD(Page-level Cache Disable)页CACHE禁止,当PCD=0时,页目录表进行高速缓存,PCD=1时,不进行高速缓存;该位控制PCD引脚控制外部CACHE工作还是不工作。
∙PWT(Page-level Writes Transparent),CACHE的写入分为透写(Write-Through)和回写(Write-Back),80486以上的CPU内部的CACHE都是透写的,但对外部CACHE而言,允许某些页是回写的,而另一些页是透写的,当PWT=1时,外部CACHE对页目录进行透写,否则进行回写;此位驱动PWT引脚以控制外部CACHE是透写还是回写。
CR4是从Pentium CPU开始出现的。
∙VME(Virtual-8086 Mode Extensions)虚拟8086方式扩展,VME=1允许使用虚拟8086扩展模式,否则只能使用80386/80486的虚拟8086模式。
∙PVI(Protected-Mode Virtual Interrupts)保护模式虚拟中断,PVI=1时,在保护模式下支持虚拟中断标志VIF(EFLAGS中),PVI=0则不支持虚拟中断标志。
∙TSD(Time Stamp Disable)时间戳禁止,TSD=1时,允许在特权级为0的程序中执行RDTSC指令(读时间戳计数指令),TSD=0时,允许任何特权级执行RDTSC指令。
∙DE(Debugging Extensions)调试扩展,∙PSE(Page Size Extensions)页大小扩展,PSE=1时,页大小可以扩展到2M或4M,PSE=0时,页大小只能是4K.∙PAE(Physical Address Extension)物理地址扩展,PAE=1时,页物理地址可以扩展到36bits 以上,PAE=0时只能用32bits的物理地址。
∙MCE(Machine-Check Enable)硬件检查使能,Pentium以后的CPU有一种硬件检测功能,MCE=1时允许使用该功能。
∙PGE(Page Global Enable)全局页使能,PGE=1时,允许使用全局页,PGE=0时禁止使用全局页。
∙PCE(Performance-Monitoring Counter Enable)性能监视计数器使能,当PCE=1时,允许在任何保护级下执行RDPMC指令,PCE=0时,只有特权级0的程序可以执行RDPMC指令。
∙OSFXSR(Operating System Support for FXSAVE and FXRSTOR instructions)∙OSXMMEXCPT(Operating System Support for Unmasked SIMD Floating-Point Exceptions)∙VMXE(VMX-Enable Bit)VMX使能位,VMXE=1时,允许VMX操作。
∙SMXE(SMX-Enable Bit)SMX使能位,SMXE=1时,允许SMX操作。