Vol. 1 3-19
BASIC EXECUTION ENVIRONMENT
3.6.1
Operand Size and Address Size in 64-Bit Mode
In 64-bit mode, the default address size is 64 bits and the default operand size is 32 bits. Defaults can be over-
ridden using prefixes. Address-size and operand-size prefixes allow mixing of 32/64-bit data and 32/64-bit
addresses on an instruction-by-instruction basis. Table 3-4 shows valid combinations of the 66H instruction prefix
and the REX.W prefix that may be used to specify operand-size overrides in 64-bit mode. Note that 16-bit
addresses are not supported in 64-bit mode.
REX prefixes consist of 4-bit fields that form 16 different values. The W-bit field in the REX prefixes is referred to
as REX.W. If the REX.W field is properly set, the prefix specifies an operand size override to 64 bits. Note that soft-
ware can still use the operand-size 66H prefix to toggle to a 16-bit operand size. However, setting REX.W takes
precedence over the operand-size prefix (66H) when both are used.
In the case of SSE/SSE2/SSE3/SSSE3 SIMD instructions: the 66H, F2H, and F3H prefixes are mandatory for
opcode extensions. In such a case, there is no interaction between a valid REX.W prefix and a 66H opcode exten-
sion prefix.
See Chapter 2, “Instruction Format,” in the Intel® 64 and IA-32 Architectures Software Developer’s Manual,
Volume 2A.
3.7 OPERAND
ADDRESSING
IA-32 machine-instructions act on zero or more operands. Some operands are specified explicitly and others are
implicit. The data for a source operand can be located in:
•
the instruction itself (an immediate operand)
•
a register
•
a memory location
•
an I/O port
Table 3-3. Effective Operand- and Address-Size Attributes
D Flag in Code Segment Descriptor
0
0
0
0
1
1
1
1
Operand-Size Prefix 66H
N
N
Y
Y
N
N
Y
Y
Address-Size Prefix 67H
N
Y
N
Y
N
Y
N
Y
Effective Operand Size
16
16
32
32
32
32
16
16
Effective Address Size
16
32
16
32
32
16
32
16
NOTES:
Y: Yes - this instruction prefix is present.
N: No - this instruction prefix is not present.
Table 3-4. Effective Operand- and Address-Size Attributes in 64-Bit Mode
L Flag in Code Segment Descriptor
1
1
1
1
1
1
1
1
REX.W Prefix
0
0
0
0
1
1
1
1
Operand-Size Prefix 66H
N
N
Y
Y
N
N
Y
Y
Address-Size Prefix 67H
N
Y
N
Y
N
Y
N
Y
Effective Operand Size
32
32
16
16
64
64
64
64
Effective Address Size
64
32
64
32
64
32
64
32
NOTES:
Y: Yes - this instruction prefix is present.
N: No - this instruction prefix is not present.