Intel 开发者手册-(1)

时间:2021-10-25 01:08:01

从零开始-保护模式

=========================================

第三章 基本执行环境

本章节从汇编语言的编程人员的视角来描述IA-32处理器的基本执行环境。主要描述处理器如何执行指令,如何存储以及操作数据。这里所描述的执行环境包括:内存(地址空间),通用数据寄存器,段寄存器,标志寄存器和指令指针寄存器。

 

3.1   操作模式

 

IA-32架构支持三种基本的操作模式:保护模式,实地址模式和系统管理模式。操作模式决定了何种指令和架构特性是可用的:

 

l  保护模式:此模式是处理的固有状态。保护模式众多性能中的一项是在一个受保护,多任务的环境中直接执行实地址模式的8086软件。这一特性被称作“Virtual-8086 Mode”(虚拟8086模式),事实上这并不能归类为一种处理器模式。Virtual-8086模式是一种可以被任意一个任务启用的保护模式属性

 

l  实地址模式:此模式实现了Intel8086处理器编程环境的扩展(例如切换至保护模式或者系统管理模式的能力)。机器上电或者重置之后处理器都处于实地址模式。

 

l  系统管理模式(SMM):此模为操作系统或者执行者提供一种透明机制来实现与平台相关的功能,如电源管理和系统安全等。处理器在以下情形下进入系统管理模式:外部系统管理模式中断(SMM interrupt)针脚(SMI#)被激活(译著:高低电平或者边沿触发不详),或者接收到一个来自高级可编程控制器(APIC)(译著:Intel 8259系列芯片)的系统管理中断(SMI)。

 

在系统管理模式下,处理器在保存当前运行的程序或任务的基本上下文内容时会切换到分离的地址空间。然后指定的系统管理模式代码就能得以执行。直到从系统管理模式返回之前,处理器的状态优先级将被置于系统管理中断之后(译著:原文the processor is placed back into its state prior to the system management interrupt)。系统管理模式是在Intel386™ SL Intel486™ SL 处理器中引入的,后来成为Pentium处理器家族的一种标准IA-32特性。

 

3.1.1 IA-32e 模式

 

Intel® EM64TIntel® Extended Memory 64 Technology)扩展了IA-32架构的基本操作模式,增加了一种新的操作模式:IA-32e模式。该模式有两个子模式:

l  兼容模式:此模式允许大多数的16位和32位程序不被重新编译即可运行在64位的操作系统下。为了叙述方便,兼容性子模式就是指IA-32架构的兼容模式。兼容模式的基本执行环境在3.2章中描述。运行在虚拟8086模式下或者使用硬件任务管理的程序不是工作在此模式下。

 

兼容模式在代码段的开始处由操作系统启用。这意味着一个64位操作系统可以支持64位程序运行在64位模式并且支持32位程序运行在兼容模式。

 

兼容模式类似32位的保护模式。程序只会寻址低4GByte的线性地址空间。兼容模式使用16位和32位地址和操作数大小。像保护模式一样,兼容模式允许程序通过PAEPhysical Address Extensions)来访问大于4GByte的物理内存。

 

l  64位模式:此模式使64位操作系统能运行用于寻址64位长度的线性地址空间的程序。为了叙述方便,64位子模式即IA-32架构的64位模式。

 

64位模式扩展了通用寄存器和SIMD扩展寄存器的数量,从8个增加到了16个。通用寄存器的位宽增加到64位。此模式还引入了一种新的操作码前缀REX来适应寄存器的扩展。详细叙述见3.2.1

 

64位模式中,REX前缀可以云寻使用64位操作数。通过这种机制,许多现存的指令升级为可以使用64位寄存器和64位地址。