background image

9-2 Vol. 1

PROGRAMMING WITH INTEL® MMX™ TECHNOLOGY

General-purpose registers — The eight general-purpose registers (see Figure 3-5) are used with existing 
IA-32 addressing modes to address operands in memory. (MMX registers cannot be used to address memory). 
General-purpose registers are also used to hold operands for some MMX technology operations. They are EAX, 
EBX, ECX, EDX, EBP, ESI, EDI, and ESP.

9.2.1 

MMX Technology in 64-Bit Mode and Compatibility Mode

In compatibility mode and 64-bit mode, MMX instructions function like they do in protected mode. Memory oper-
ands are specified using the ModR/M, SIB encoding described in Section 3.7.5.

9.2.2 MMX 

Registers

The MMX register set consists of eight 64-bit registers (see Figure 9-2), that are used to perform calculations on 
the MMX packed integer data types. Values in MMX registers have the same format as a 64-bit quantity in memory. 
The MMX registers have two data access modes: 64-bit access mode and 32-bit access mode. The 64-bit access 
mode is used for:

64-bit memory accesses

64-bit transfers between MMX registers

All pack, logical, and arithmetic instructions

Some unpack instructions

The 32-bit access mode is used for:

32-bit memory accesses

32-bit transfer between general-purpose registers and MMX registers

Some unpack instructions

Figure 9-1.  MMX Technology Execution Environment

0

2

32

 -1

Eight 32-Bit

Address Space

General-Purpose

Eight 64-Bit

MMX Registers

Registers