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 processors 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