x86的控制寄存器CR0,CR1,CR2,CR3
状态和控制寄存器组除了EFLAGS、EIP ,还有四个32位的控制寄存器,它们是CR0,CR1,CR2和CR3。
这几个寄存器中保存全局性和任务无关的机器状态。
CR0中包含了6个预定义标志,0位是保护允许位PE(Protedted Enable),用于启动保护模式,如果PE位置1,则保护模式启动,如果PE=0,则在实模式下运行。1位是监控协处理位MP(Moniter coprocessor),它与第3位一起决定:当TS=1时操作码WAIT是否产生一个“协处理器不能使用”的出错信号。第3位是任务转换位(Task Switch),当一个任务转换完成之后,自动将它置1。随着TS=1,就不能使用协处理器。CR0的第2位是模拟协处理器位 EM (Emulate coprocessor),如果EM=1,则不能使用协处理器,如果EM=0,则允许使用协处理器。第4位是微处理器的扩展类型位ET(Processor Extension Type),其内保存着处理器扩展类型的信息,如果ET=0,则标识系统使用的是287协处理器,如果 ET=1,则表示系统使用的是387浮点协处理器。CR0的第31位是分页允许位(Paging Enable),它表示芯片上的分页部件是否允许工作。
CR1是未定义的控制寄存器,供将来的处理器使用。
CR2是页故障线性地址寄存器,保存最后一次出现页故障的全32位线性地址。
CR3是页目录基址寄存器,保存页目录表的物理地址,页目录表总是放在以4K字节为单位的存储器边界上,因此,它的地址的低12位总为0,不起作用,即使写上内容,也不会被理会。
这几个寄存器是与分页机制密切相关的,因此,在进程管理及虚拟内存管理中会涉及到这几个寄存器,读者要记住CR0、CR2及CR3这三个寄存器的内容
CR0中的标志
|
指令类型
|
|||
EM
|
MP
|
TS
|
浮点
|
WAIT/FWAIT
|
0
|
0
|
0
|
执行
|
执行
|
0
|
0
|
1
|
设备不存在(DNA)异常
|
执行
|
0
|
1
|
0
|
执行
|
执行
|
0
|
1
|
1
|
DNA异常
|
DNA异常
|
1
|
0
|
0
|
DNA异常
|
执行
|
1
|
0
|
1
|
DNA异常
|
执行
|
1
|
1
|
0
|
DNA异常
|
执行
|
1
|
1
|
1
|
DNA异常
|
DNA异常
|
x86的控制寄存器CR0,CR1,CR2,CR3相关推荐
- 控制寄存器(CR0,CR1,CR2,CR3)
控制寄存器 (控制寄存器(CR0,CR1,CR2,CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性.) 从上表可见,80386有四个32位的控制寄存器,分别命名位CR0.CR1.C ...
- 控制寄存器(CR0,CR1,CR2,CR3,CR4)
CR0 是系统内的控制寄存器之一.控制寄存器是一些特殊的寄存器,它们可以控制CPU的一些重要特性. 0位是保护允许位PE(Protedted Enable),用于启动保护模式,如果PE位置1 ...
- x64 各个cr控制寄存器 含义/用途 (cr0 cr1 cr2 cr3 cr4 cr8)
Cr0:当前处理器运行标志 Cr1:保留不使用 Cr2:发生页面错误时的地址(不一定按页对齐) Cr3:页目录表基址,表示当前执行进程 Cr4:处理器扩展功能标志位 Cr8:当前Irql权限等级 各个 ...
- Control Registers(CR0, CR1, CR2, CR3, and CR4)
摘自<Intel® 64 and IA-32 Architectures Software Developer's Manual Combined Volumes1, 2A, 2B, 2C, 2 ...
- x86 cr0 cr1 cr3
状态和控制寄存器组除了EFLAGS.EIP ,还有四个32位的控制寄存器,它们是CR0,CR1,CR2和CR3. 这几个寄存器中保存全局性和任务无关的机器状态. CR0中包含了6个预定义标志,0位是保 ...
- 内存寻址(一)硬件寻址的基本原理:硬件中的分段和分页机制,控制寄存器CR0与CR3
https://www.baidu.com/s?word=CSDN&tn=91185032_hao_pg 摘要:本文讲述8086怎样进行芯片级别的内存寻址,Linux又是如何在这些硬件的基础上 ...
- Cu 大彻大悟内存管理 mm (update 0410)
66 2012-4-10 11:23:53 一口气读完,畅快..原来站在设计者的角度是这样的 来源于cu 讨论 创意 ARM在内存管理上,和x86的区别主要是页表构造不同. 除了用层的思想,用映射 ...
- x86 - CPU架构/寄存器详解 (三) 保护模式
系列文章 x86 - CPU架构/寄存器详解 (一)x86.8086.i386.IA-32 是什么? x86 - CPU架构/寄存器详解 (二) 实模式(8086模式) x86 - CPU架构/寄存器 ...
- 学习操作系统:进入保护模式,理解GDT(1):TEXT
直接上代码,以及追加了自己对GDT的理解,为了理解GDT,翻遍了各种文章,但没有代码的支撑,凭空的理解很浪费时间. 下面的代码,稍微简化了原先的代码(于老师的代码^^).把pm.asm需要的代码从pm ...
最新文章
- 开机自动挂载与autofs触发挂载
- linux下防火墙的管理工具firewall-cmd
- 成轴对称的两组图片能被分成两类吗?
- 基于Linux的嵌入式文件系统构建与设计
- ENVI入门系列教程---一、数据预处理---3.1 基于自带定位信息的几何校正
- Web Part加载错误的一点经验
- js基础知识汇总10
- linux修改数据库密码出现的问题吗,关于linux下mysql修改root密码时遇到的问题
- bat文件转exe工具分享
- 电脑开机密码忘了怎么办
- 网站盈利有哪些模式?
- 如何删除windows 10系统桌面的所有快捷图标
- 用脑子说话,用心服务
- 教你用Python如何玩转声音文件,将声音按照语音间隙切割为片段
- 可口可乐启示录:把世界装进瓶子里的4个商人【姜太公公】
- 关于mysql中5位数字转化为日期格式的问题
- 史上最全Android性能优化方案解析
- MSVC编译器-C2001 常量中有换行符错误解决方法
- ARCMAP自定义色带
- 华为平板 鸿蒙2.0,华为新平板将发布,搭载鸿蒙2.0系统
热门文章
- 基于eBPF的Linux沙盒文件系统SandFS
- 计算机网络统考历年卷,201710月全国自学考试04741《计算机网络原理》历年真题试题(卷)与答案解析.doc...
- Android的无边界程序设计理念
- SaaSBase:什么是易客管家SCRM?
- 迅雷7手动去广告详细教程
- 如何用LegendForFlashProgramming来制作SLG游戏
- 19Siggraph 交互式手姿态估计使用拉伸传感软手套 文献阅读
- java门禁系统_java项目:门禁系统
- 机器学习——英文特征提取,中文特征提取
- IntelliJ IDEA 常用快捷键讲解(Win + Linux)