8-11
PROGRAMMING WITH THE INTEL MMX TECHNOLOGY
8.2.2.Instruction Operands
All MMX instructions, except the EMMS instruction, reference and operate on two operands:
the source and destination operands. The first operand is the destination and the second operand
is the source. The destination operand may also be a second source operand for the operation.
The instruction overwrites the destination operand with the result.
For example, a two-operand instruction would be decoded as:
DEST (first operand)
<
DEST (first operand) OPERATION SRC (second operand)
The source operand for all the MMX instructions (except the data transfer instructions), can
reside either in memory or in an MMX register. The destination operand resides in an
MMX register.
For data transfer instructions, the source and destination operands can also be an integer register
(for the MOVD instruction) or memory location (for both the MOVD and MOVQ instructions).
8.3.OVERVIEW OF THE MMX INSTRUCTION SET
Table 8-2 shows the instructions in the MMX instruction set. The following sections give a
brief overview of each group of instructions in the MMX instruction set and the instructions
within each group. Refer to Section 9.3.6., Additional SIMD Integer Instructions, in Chapter
9, Programming with the Streaming SIMD Extensions, for additional SIMD integer instructions
added with the Streaming SIMD Extensions.
8.3.1.Data Transfer Instructions
The MOVD (Move 32 Bits) instruction transfers 32 bits of packed data from memory to
MMX registers and visa versa, or from integer registers to MMX registers and visa versa.
The MOVQ (Move 64 Bits) instruction transfers 64-bits of packed data from memory to
MMX registers and vise versa, or transfers data between MMX registers.