Skip to content

Commit

Permalink
译 intel 3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangbotong committed Nov 18, 2021
1 parent 4e11904 commit 4edd228
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions Intel 手册中文版/卷一:基本架构.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,35 @@ Intel Pentium processor 的引入增加了第二个执行管道(execution pipe


# 第三章 Basic Execution Environment
## 3.1 操作模式

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

* **保护模式**(Protected mode)--该模式是处理器的本机状态(native state)。保护模式是指能够在受保护的多任务环境中直接执行实地址模式 8086 软件。这个特性被称为**虚拟-8086 模式**,尽管它实际上不是处理器模式。虚拟-8086 模式实际上是保护模式的一个属性,可以被任何任务开启。

* **实地址模式**(Real-address mode)-- 该模式实现了 Intel 8086 处理器的编程环境,具有扩展功能(例如切换到保护模式或系统管理模式的能力)。处理器在通电或复位后被置于实地址模式。

* **系统管理模式** (System management mode,SMM)--该模式为操作系统或执行程序提供透明的机制,实现平台相关特有的功能,如电源管理、系统安全等。当外部 SMM 中断引脚(SMI#--SMM interrupt)被激活或从高级可编程中断控制器(APIC)接收到 SMI 时,处理器进入 SMM。

在 SMM 中,当保存当前运行的程序或任务的基本上下文时,处理器切换到一个单独的地址空间。然后可以透明地执行特定于 SMM 的代码。当从 SMM 返回时,处理器被放置回系统管理中断之前的状态。SMM 是在 Intel386 SL 和 Intel486 SL 处理器中引入的,并成为奔腾处理器家族的标准 IA-32 特性。

### 3.1.1 Intel® 64 架构

Intel 64 架构增加了 IA-32E 模式。IA-32E 模式有两个子模式。他们是:

* 兼容模式(IA-32E 模式的子模式) - 兼容模式允许大多数传统的 16 位和 32 位应用程序在无需重新编译情况下运行在 64 位操作系统。兼容性子模式在 IA-32 架构中简称为兼容模式。兼容模式的执行环境与 3.2 节描述相同。兼容模式还支持 64 位和保护模式支持的所有特权级。以虚拟 8086 模式或使用硬件任务管理的遗留应用程序不能在此模式下工作。

兼容模式是操作系统在代码段的基础上启用的。这意味着单个 64 位操作系统可以支持以 64 位的应用程序以 64 位模式运行,并支持以兼容模式运行的传统的 32 位应用程序(未重新编译为 64 位)。

兼容性模式类似于 32 位保护模式。应用程序只访问线性地址空间的前 4 G。兼容模式使用 16 位和 32 位地址和操作数大小。与保护模式一样,这种模式允许应用程序使用 PAE(Physical Address Extensions)访问大于 4 G 的物理内存。

* 64 位模式(IA 32e 模式的子模式)- 这种模式使 64 位操作系统能够运行访问 64 位地址空间的应用。64 位子模式在 IA-32 架构中简称为 64 位模式。

64 位模式将通用寄存器和 SIMD 扩展寄存器的数量从 8 升到了 16。并且通用寄存器扩展到 64 位。该模式还引入了一个新的操作码前缀(rex)以访问寄存器的扩展位。有关详细说明,请参见第 3.2.1 节。

操作系统以代码段为基础启用 64 位模式。其默认地址大小为 64 位,其默认操作数大小为 32 位。可以使用 REX 操作码前缀和操作数大小覆盖前缀在逐条指令的基础上覆盖默认操作数大小。

REX 前缀允许在 64 位模式下指定 64 位操作数。通过此机制,许多现有指令允许使用 64位寄存器和 64 位地址。

## 3.4 BASIC PROGRAM EXECUTION REGISTERS

Expand Down

0 comments on commit 4edd228

Please sign in to comment.