From 82f796509b45fb58773bfa8c186a628efae8707f Mon Sep 17 00:00:00 2001 From: colinxu2020 <63941938+colinxu2020@users.noreply.github.com> Date: Thu, 18 Nov 2021 13:01:36 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=8F=82=E4=B8=8E?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Intel 手册中文版/卷一:基本架构.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Intel 手册中文版/卷一:基本架构.md b/Intel 手册中文版/卷一:基本架构.md index 1070f86..febbc04 100644 --- a/Intel 手册中文版/卷一:基本架构.md +++ b/Intel 手册中文版/卷一:基本架构.md @@ -5,6 +5,7 @@ 这里是目录,要有锚点链接。 [@翻译人:闪客sun](https://github.com/sunym1993/flash-linux0.11-talk) +[@翻译人:Colinxu2020](https://github.com/colinxu2020/) 本卷是讲述 Intel 64 和 IA-32 架构处理器体系结构和编程环境的一部分,其他卷分别是: From d499d9451a48a0b52b9ff6c106cc86ac6e9f5c47 Mon Sep 17 00:00:00 2001 From: colinxu2020 <63941938+colinxu2020@users.noreply.github.com> Date: Thu, 18 Nov 2021 13:08:54 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=8D=E7=BD=AE(?= =?UTF-8?q?=E5=86=99=E9=94=99=E4=BA=86qaq)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Intel 手册中文版/卷一:基本架构.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Intel 手册中文版/卷一:基本架构.md b/Intel 手册中文版/卷一:基本架构.md index febbc04..f392322 100644 --- a/Intel 手册中文版/卷一:基本架构.md +++ b/Intel 手册中文版/卷一:基本架构.md @@ -5,7 +5,6 @@ 这里是目录,要有锚点链接。 [@翻译人:闪客sun](https://github.com/sunym1993/flash-linux0.11-talk) -[@翻译人:Colinxu2020](https://github.com/colinxu2020/) 本卷是讲述 Intel 64 和 IA-32 架构处理器体系结构和编程环境的一部分,其他卷分别是: @@ -276,8 +275,11 @@ CS , DS , SS 和 ES 这四个段寄存器与 Intel 8086 and Intel 286 处理器 @翻译人:符宇舟Alex +#### 4.3 POINTER DATA TYPES +@翻译人:Colinxu2020 # 第五章 Instruction Set Summary +#### 5. # 第六章 Procedure Calls, Interrupts, and Exceptions From 97ba5e262171783e36743f129f0f061f39bc1632 Mon Sep 17 00:00:00 2001 From: colinxu2020 <63941938+colinxu2020@users.noreply.github.com> Date: Thu, 18 Nov 2021 17:20:43 +0800 Subject: [PATCH 3/5] Trans port 4.3 --- .../卷一:基本架构.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Intel 手册中文版/卷一:基本架构.md b/Intel 手册中文版/卷一:基本架构.md index f392322..16fa42d 100644 --- a/Intel 手册中文版/卷一:基本架构.md +++ b/Intel 手册中文版/卷一:基本架构.md @@ -275,11 +275,26 @@ CS , DS , SS 和 ES 这四个段寄存器与 Intel 8086 and Intel 286 处理器 @翻译人:符宇舟Alex -#### 4.3 POINTER DATA TYPES +## 4.3 POINTER DATA TYPES @翻译人:Colinxu2020 +指针是指向内存中一个位置的地址。 +在非64位模式下,该架构定义了两种类型的指针:近指针和远指针。一个近 +指针是一个段内的32位(或16位)偏移(也称为有效地址)。 +近指针用于平坦的内存模型中的所有内存引用,或者用于分段内存模型中的引用,其中被访问段的基址是隐含的。 +远指针是一个逻辑地址,由一个16位段选择器和一个32位(或16位)偏移量组成。远指针用于分段内存模型中的内存引用,其中被访问段的身份必须明确指定。 +带有32位偏移量的近指针和远指针如图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 + # 第五章 Instruction Set Summary -#### 5. # 第六章 Procedure Calls, Interrupts, and Exceptions From 6669eff8ee049c69c12d38a2004b5b3c8fdbec0d Mon Sep 17 00:00:00 2001 From: colinxu2020 <63941938+colinxu2020@users.noreply.github.com> Date: Thu, 18 Nov 2021 17:34:33 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8C=89=E7=85=A7README=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Intel 手册中文版/卷一:基本架构.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Intel 手册中文版/卷一:基本架构.md b/Intel 手册中文版/卷一:基本架构.md index 16fa42d..b5f7040 100644 --- a/Intel 手册中文版/卷一:基本架构.md +++ b/Intel 手册中文版/卷一:基本架构.md @@ -277,16 +277,15 @@ CS , DS , SS 和 ES 这四个段寄存器与 Intel 8086 and Intel 286 处理器 ## 4.3 POINTER DATA TYPES -@翻译人:Colinxu2020 +@翻译人:Colinxu2020
指针是指向内存中一个位置的地址。 -在非64位模式下,该架构定义了两种类型的指针:近指针和远指针。一个近 -指针是一个段内的32位(或16位)偏移(也称为有效地址)。 +在非64位模式下,该架构定义了两种类型的指针:近指针和远指针。一个近指针是一个段内的32位(或16位)偏移(也称为有效地址)。 近指针用于平坦的内存模型中的所有内存引用,或者用于分段内存模型中的引用,其中被访问段的基址是隐含的。 远指针是一个逻辑地址,由一个16位段选择器和一个32位(或16位)偏移量组成。远指针用于分段内存模型中的内存引用,其中被访问段的身份必须明确指定。 带有32位偏移量的近指针和远指针如图4-4所示 图4-4 ### 4.3.1 Pointer Data Types in 64-Bit Mode -在64位模式(IA-32e模式的一个子模式)中,一个近指针是64位。这等同于一个有效的地址。 +在64位模式(IA-32e 模式的一个子模式)中,一个近指针是64位。这等同于一个有效的地址。 64位模式下的远指针可以是三种形式之一。 - 16位段选择器,16位偏移,如果操作数是32位的话 - 16位段选择器,32位偏移,如果操作数是32位的话 From 735f2a0ed95f5f7b8a77d1bdb118d922f01bcb4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=AA=E5=AE=A2sun?= <18811311416@sina.cn> Date: Mon, 10 Jan 2022 11:05:39 +0800 Subject: [PATCH 5/5] =?UTF-8?q?Update=20=E5=8D=B7=E4=B8=80=EF=BC=9A?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=9E=B6=E6=9E=84.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../卷一:基本架构.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Intel 手册中文版/卷一:基本架构.md b/Intel 手册中文版/卷一:基本架构.md index b5f7040..9234703 100644 --- a/Intel 手册中文版/卷一:基本架构.md +++ b/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
+@翻译人: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