6-20
INSTRUCTION SET SUMMARY
6.3.DATA MOVEMENT INSTRUCTIONS
The data movement instructions move bytes, words, doublewords, or quadwords both between
memory and the processors registers and between registers. These instructions are divided into
four groups:
General-purpose data movement.
Exchange.
Stack manipulation.
Type-conversion.
6.3.1.General-Purpose Data Movement Instructions
The MOV (move) and CMOVcc (conditional move) instructions transfer data between memory
and registers or between registers.
6.3.1.1.MOVE INSTRUCTION
The MOV instruction performs basic load data and store data operations between memory and
the processors registers and data movement operations between registers. It handles data trans-
fers along the paths listed in Table 6-1. (Refer to MOVMove to/from Control Registers and
MOVMove to/from Debug Registers in Chapter 3, Instruction Set Reference of the Intel
Architecture Software Developers Manual, Volume 2, for information on moving data to and
from the control and debug registers.)
The MOV instruction cannot move data from one memory location to another or from one
segment register to another segment register. Memory-to-memory moves can be performed with
the MOVS (string move) instruction (refer to Section 6.10., String Operations).
6.3.1.2.CONDITIONAL MOVE INSTRUCTIONS
The CMOVcc instructions are a group of instructions that check the state of the status flags in
the EFLAGS register and perform a move operation if the flags are in a specified state (or condi-
tion). These instructions can be used to move a 16- or 32-bit value from memory to a general-
purpose register or from one general-purpose register to another. The flag state being tested for
each instruction is specified with a condition code (cc) that is associated with the instruction. If
the condition is not satisfied, a move is not performed and execution continues with the instruc-
tion following the CMOVcc instruction.