出现几种模式,主要是因为x86CPU的历史包袱,为了向下兼容,让老的程序依然可以在新的CPU上执行。
-
实模式(Real-Address Mode):
- ①运行真实的指令,执行指令真实的功能;
- 访问内存的地址都是真实的,即是物理地址;
- 一共只有20位地址线(1MB访问),及8个16位的通用寄存器,4个 16位的段寄存器。
- 不能对内存进行分布管理;
- 系统上电或复位后,处理器总是在实地址模式。
-
保护模式(Protected Mode):
- 处理器可以寻址4GB的地址空间;
- 同时还支持多任务,内存分页管理和优先级保护等机制;
- 保护模式引入了虚拟地址的概念,应用程序只能使用逻辑地址,逻辑 地址的转换又由MMV(内存管理单元)来完成,使应用程序无法直接访问 真实地址,从而保护了系统数据的安全。
-
虚拟8086模式(Virtual-8086 Mode):
- 准操作模式,保护模式下的一种工作方式;
- 多任务环境下,每个任务都可以执行实地址下的“8086指令”。
-
系统管理模式(System Management Mode ):
- 该模式,只能通过系统管理中断(SMI)进入,并且只能执行RSM指令推出。
- 在保护当前正在运行的程序或整个任务的上下文后,处理器切换到一个独立的地址空间,能透明的执行SMM特定码。
-
IA-32e 模式:
这个模式下有两个子模式,兼容模式和64bit长模式(long mode)。在兼容模式,保护模式下的软件可以直接在IA-32e下运行,长模式支持64位的线性地址而且支持物理地址大于64G。
-
来自于Intel规范文档:Intel® 64 and IA-32 Architectures Software Developer’s Manual