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