4-4 Vol. 1
DATA TYPES
to 2
32
– 1 for an unsigned doubleword integer, and from 0 to 2
64
– 1 for an unsigned quadword integer. Unsigned
integers are sometimes referred to as ordinals.
4.2.1.2
Signed Integers
Signed integers are signed binary numbers held in a byte, word, doubleword, or quadword. All operations on signed
integers assume a two's complement representation. The sign bit is located in bit 7 in a byte integer, bit 15 in a
word integer, bit 31 in a doubleword integer, and bit 63 in a quadword integer (see the signed integer encodings in
Table 4-1).
The sign bit is set for negative integers and cleared for positive integers and zero. Integer values range from –128
to +127 for a byte integer, from –32,768 to +32,767 for a word integer, from –2
31
to +2
31
– 1 for a doubleword
integer, and from –2
63
to +2
63
– 1 for a quadword integer.
When storing integer values in memory, word integers are stored in 2 consecutive bytes; doubleword integers are
stored in 4 consecutive bytes; and quadword integers are stored in 8 consecutive bytes.
The integer indefinite is a special value that is sometimes returned by the x87 FPU when operating on integer
values. For more information, see Section 8.2.1, “Indefinites.”
4.2.2
Floating-Point Data Types
The IA-32 architecture defines and operates on three floating-point data types: single-precision floating-point,
double-precision floating-point, and double-extended precision floating-point (see Figure 4-3). The data formats
for these data types correspond directly to formats specified in the IEEE Standard 754 for Binary Floating-Point
Arithmetic.
Half-precision (16-bit) floating-point data type is supported only for conversion operation with single-precision
floating data using F16C extensions (VCVTPH2PS, VCVTPS2PH).
Table 4-2 gives the length, precision, and approximate normalized range that can be represented by each of these
data types. Denormal values are also supported in each of these types.
Table 4-1. Signed Integer Encodings
Class
Two’s Complement Encoding
Sign
Positive
Largest
0
11..11
.
.
.
.
Smallest
0
00..01
Zero
0
00..00
Negative
Smallest
1
11..11
.
.
.
.
Largest
1
00..00
Integer indefinite
1
00..00
Signed Byte Integer:
Signed Word Integer:
Signed Doubleword Integer:
Signed Quadword Integer:
←
7 bits
→
←
15 bits
→
←
31 bits
→
←
63 bits
→