Intel 64 and IA-32 Architectures Software Developers Manual Volume 1, Basic Architecture
Vol. 1 7-3
PROGRAMMING WITH GENERAL-PURPOSE INSTRUCTIONS
7.3 SUMMARY OF GP INSTRUCTIONS
General purpose instructions are divided into the following subgroups:
• Data transfer
• Binary arithmetic
• Decimal arithmetic
• Logical
• Shift and rotate
• Bit and byte
• Control transfer
• String
• I/O
• Enter and Leave
• Flag control
• Segment register
• Miscellaneous
Each sub-group of general-purpose instructions is discussed in the context of non-
64-bit mode operation first. Changes in 64-bit mode beyond those affected by the
use of the REX prefixes are discussed in separate sub-sections within each subgroup.
For a simple list of general-purpose instructions by subgroup, see Chapter 5.
7.3.1 Data Transfer Instructions
The data transfer instructions move bytes, words, doublewords, or quadwords both
between memory and the processor’s registers and between registers. For the
purpose of this discussion, these instructions are divided into subordinate subgroups
that provide for:
• General data movement
• Exchange
• Stack manipulation
• Type conversion
7.3.1.1 General Data Movement Instructions
Move instructions — The MOV (move) and CMOVcc (conditional move) instructions
transfer data between memory and registers or between registers.
The MOV instruction performs basic load data and store data operations between
memory and the processor’s registers and data movement operations between regis-
ters. It handles data transfers along the paths listed in Table 7-1. (See “MOV—Move