闪客sun
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
17 additions and
3 deletions
-
Intel 手册中文版/卷一:基本架构.md
|
|
@ -203,6 +203,7 @@ Intel 和 IA-32 处理器都是采用“little endian(小端)”方式存储 |
|
|
|
\#GP(0) |
|
|
|
|
|
|
|
# 第二章 Intel 64 and IA-32 Architectures |
|
|
|
|
|
|
|
## 2.1 INTEL® 64 与 IA-32 架构的简要历史 |
|
|
|
|
|
|
|
以下章节提供了从 IA-32 到 Intel 64 架构的主要技术演进的摘要:从 Intel 8086 处理器开始到最新的 Intel®Core®2Duo,Core 2 Quad 和 Intel Xeon 处理器 5300 和 7300 系列。1978 年以前发布的处理器创建的对象代码仍然在 Inter 64 和 IA-32 架构系列中的最新处理器上运行着。 |
|
|
@ -220,6 +221,7 @@ Intel 和 IA-32 处理器都是采用“little endian(小端)”方式存储 |
|
|
|
|
|
|
|
|
|
|
|
### 3.4.2 段寄存器 |
|
|
|
|
|
|
|
@翻译人:墨 |
|
|
|
|
|
|
|
段寄存器控制(代码段寄存器,数据段寄存器,堆栈段寄存器,扩展段寄存器,标志段寄存器,全局段寄存器)16 位的段选择子。段选择子是一种特殊的指针,用来标识内存中的段。为了访问内存中特定的段,该段的段选择子必须存在于适当的段寄存器中。 |
|
|
@ -277,21 +279,33 @@ CS , DS , SS 和 ES 这四个段寄存器与 Intel 8086 and Intel 286 处理器 |
|
|
|
|
|
|
|
## 4.3 POINTER DATA TYPES |
|
|
|
|
|
|
|
@翻译人:Colinxu2020 </br> |
|
|
|
@翻译人:Colinxu2020 |
|
|
|
|
|
|
|
指针是指向内存中一个位置的地址。 |
|
|
|
|
|
|
|
在非64位模式下,该架构定义了两种类型的指针:近指针和远指针。一个近指针是一个段内的32位(或16位)偏移(也称为有效地址)。 |
|
|
|
|
|
|
|
近指针用于平坦的内存模型中的所有内存引用,或者用于分段内存模型中的引用,其中被访问段的基址是隐含的。 |
|
|
|
|
|
|
|
远指针是一个逻辑地址,由一个16位段选择器和一个32位(或16位)偏移量组成。远指针用于分段内存模型中的内存引用,其中被访问段的身份必须明确指定。 |
|
|
|
|
|
|
|
带有32位偏移量的近指针和远指针如图4-4所示 |
|
|
|
图4-4 |
|
|
|
|
|
|
|
图4-4 |
|
|
|
|
|
|
|
### 4.3.1 Pointer Data Types in 64-Bit Mode |
|
|
|
|
|
|
|
在64位模式(IA-32e 模式的一个子模式)中,一个近指针是64位。这等同于一个有效的地址。 |
|
|
|
|
|
|
|
64位模式下的远指针可以是三种形式之一。 |
|
|
|
|
|
|
|
- 16位段选择器,16位偏移,如果操作数是32位的话 |
|
|
|
- 16位段选择器,32位偏移,如果操作数是32位的话 |
|
|
|
- 如果操作数为64位,16位段选择器,64位偏移量 |
|
|
|
|
|
|
|
见图4-5 |
|
|
|
图4-5 |
|
|
|
|
|
|
|
图4-5 |
|
|
|
|
|
|
|
# 第五章 Instruction Set Summary |
|
|
|
|
|
|
|