background image

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

Operand-Size  Prefix  66H

N

N

Y

Y

N

N

Y

Address-Size  Prefix  67H

N

Y

N

Y

N

Y

N

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

REX.W  Prefix 

0

0

0

1

1

1

Operand-Size Prefix 66H

N

N

Y

N

N

Y

Address-Size Prefix 67H

N

Y

N

N

Y

N

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.