x86 CPU的操作模式
来源:互联网 发布:ssm框架项目实例源码 编辑:程序博客网 时间:2024/04/29 15:49
32位Intel处理器
拥有三种基本模式,
****保护模式:纯32位保护执行环境。该模式拥有一个子模式,虚拟8086模式:
**虚拟8086模式是运行在保护模式中的实模式,为了在32位保护模式下执行纯16位实模式程序。它不是一个真正的CPU模式,还属于保护模式。
****实模式:纯16位无保护执行环境。
保护模式同实模式的根本区别是进程内存受保护与否。可寻址空间的区别只是这一原因的果。
实模式将整个物理内存看成分段的区域,程序代码和数据位于不同区域,系统程序和用户程序没有区别对待,而且每一个指针都是指向"实在"的物理地址。这样一来,用户程序的一个指针如果指向了系统程序区域或其他用户程序区域,并改变了值,那么对于这个被修改的系统程序或用户程序,其后果就很可能是灾难性的。为了克服这种低劣的内存管理方式,处理器厂商开发出保护模式。这样,物理内存地址不能直接被程序访问,程序内部的地址(虚拟地址)要由操作系统转化为物理地址去访问,程序对此一无所知。至此,进程(这时我们可以称程序为进程了)有了严格的边界,任何其他进程根本没有办法访问不属于自己的物理内存区域,甚至在自己的虚拟地址范围内也不是可以任意访问的,因为有一些虚拟区域已经被放进一些公共系统运行库。这些区域也不能随便修改,若修改就会有: SIGSEGV(linux 段错误);非法内存访问对话框(windows 对话框)。
CPU启动环境为16位实模式,之后可以切换到保护模式。但从保护模式无法切换回实模式
****系统管理模式:当SMI引脚为有效进入系统管理模式,首先保存当前的CPU上下文。它有独立的地址空间,用来执行电源管理或系统安全方面的指令。
现在的64位奔腾4处理器,拥有三种基本模式和一种扩展模式,
a)基本模式:
****保护模式:纯32位保护执行环境。同32位处理器
****实模式:纯16位无保护执行环境。同32位处理器
****系统管理模式:当SMI引脚为有效进入系统管理模式,首先保存当前的CPU上下文。它有独立的地址空间,用来执行电源管理或系统安全方面的指令。同32位处理器
b)扩展模式:****IA-32e模式,64位操作系统运行在该模式。该模式有两种子模式:
1)**兼容模式:该模式下,64位操作系统运行在32位兼容环境,能正常运行16,32位应用程序就像基本的保护模式一样,访问32位地址空间,但不能运行纯16位实模式程序(就是不能运行虚拟86模式程序了)。
2)**64位模式:在该模式下,处理器完全执行64位指令,使用64位地址空间和64操作数,运行16,32位程序必须切换到兼容模式。
IA-32e子模式的切换完全基于代码段寄存器。这样一来,运行在IA-32e模式中(64位)的OS完全可以无缝的运行所有16,32,64位应用程序,通过设置32位后的CS。
- x86 CPU的操作模式
- x86 CPU的操作模式 保护模式下的特权级
- 80x86 cpu的保护模式
- JILK - CPU - (3) - CPU的操作模式
- 编译模式 Any CPU和x86的区别
- 80x86 CPU 的工作模式(扫盲贴)
- ----[x86保护模式] CPU合成内存地址的方式----
- x86 系列 CPU 内存寻址模式总结
- CPU主频X86的实模式_保护模式_虚拟概述
- bios x86保护模式下的软盘操作floppy
- x86平台读取cpu支持sse2指令集的代码,以及原子操作的代码
- x86 cpu 32位,保护模式下,EIP寄存器存放的是线性地址还是物理地址
- intel x86 cpu系列的寻址方式
- Intel X86 CPU系列的寄存器
- Intel X86 CPU系列的寄存器
- x86 CPU所有的寄存器种类
- Intel X86 CPU系列的寄存器
- Intel X86 CPU系列的寄存器
- 用java学习OpenGL的环境配置
- 怎样将Excel中的某一部分字段内容导入到SQL Server 2000的某个表的某些字段中
- 本博客准备搬家
- confirm
- JAVA ClassLoader实例和Singleton模式结合
- x86 CPU的操作模式
- .NET 中 解释及用法
- 使用注册表/组策略/批处理禁用声卡
- 战将宣言
- 快速排序
- Eclipse开发资料汇总
- 直接排序
- MindManager
- Hibernate 资料汇总