background image

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