|
|
@ -532,12 +532,43 @@ CS , DS , SS 和 ES 这四个段寄存器与 Intel 8086 and Intel 286 处理器 |
|
|
|
|
|
|
|
@翻译人:符宇舟Alex |
|
|
|
|
|
|
|
## 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 |
|
|
|
|
|
|
|
## 4.4 BIT FIELD DATA TYPE |
|
|
|
[@翻译人:Hola39e](https://github.com/Hola39e) |
|
|
|
|
|
|
|
位域数据类型(见图4-6)是一个连续的比特序列。它可以从内存中任何字节的任何位开始,最多可以包含32位。 |
|
|
|
|
|
|
|
Figure 4-6 here |
|
|
|
Figure 4-6 here |
|
|
|
|
|
|
|
## 4.5 STRING DATA TYPES |
|
|
|
[@翻译人:Hola39e](https://github.com/Hola39e) |
|
|
|
|
|
|
@ -547,20 +578,22 @@ CS , DS , SS 和 ES 这四个段寄存器与 Intel 8086 and Intel 286 处理器 |
|
|
|
[@翻译人:Hola39e](https://github.com/Hola39e) |
|
|
|
|
|
|
|
Intel64和IA-32架构定义与操作一组64位和128位包装(Packed)数据类型,中文又称数据向量,用于单指令多数据流(SIMD)操作。这些打包数据类型的由基本的数据类型(打包对齐的字节、字、双字和四字组成),以及用于进行矢量运算(Packed)指令操作的整数,浮点数基本类型的数值说明。 |
|
|
|
|
|
|
|
### 4.6.1 64-Bit SIMD Packed Data Types |
|
|
|
[@翻译人:Hola39e](https://github.com/Hola39e) |
|
|
|
|
|
|
|
64位包装(Packed)SIMD数据结构是在Intel MXX指令集中加入到IA-32中去的。它们在MXX寄存器中被操作。基本的64位包装数据类型是打包对齐起来的字节、字以及双字(见图4-7)。当执行SIMD操作时,这些数据结构会被解释成 |
|
|
|
进行矢量运算(Packed)指令操作的字节、字、双字长度的整数值。 |
|
|
|
|
|
|
|
Figure 4-7 here |
|
|
|
Figure 4-7 here |
|
|
|
|
|
|
|
### 4.6.2 128-Bit Packed SIMD Data Types |
|
|
|
[@翻译人:Hola39e](https://github.com/Hola39e) |
|
|
|
|
|
|
|
128位包装(Packed)SIMD数据结构是在SSE扩展指令集中被引入到IA-32中去的,在SSE2,SSE3,SSSE3扩展指令集中被使用。它们主要在128位的XMM寄存器和内存中进行操作,基本的128位包装数据类型是打包对齐起来的字节、字、双字、四字组成的(见图4-8)。当对在XMM寄存器中保存的包装(Packed)数据类型执行SIMD操作时,这些数据类型会被解释进行矢量运算(Packed)指令操作或标量运算(Scalar)指令操作的单精度浮点数或双精度浮点数,或者进行矢量运算(Packed)的长度为字节、字、双字、四字的整数值。 |
|
|
|
|
|
|
|
Figure 4-8 here |
|
|
|
Figure 4-8 here |
|
|
|
|
|
|
|
# 第五章 Instruction Set Summary |
|
|
|
|
|
|
|
# 第六章 Procedure Calls, Interrupts, and Exceptions |
|
|
@ -581,7 +614,6 @@ Intel64和IA-32架构定义与操作一组64位和128位包装(Packed)数据 |
|
|
|
|
|
|
|
@翻译人:si |
|
|
|
|
|
|
|
|
|
|
|
# 第七章 Programming With General-Purpose Instructions |
|
|
|
|
|
|
|
# 第八章 ~ 第十八章 |
|
|
|