This preview shows page 1. Sign up to view the full content.
Unformatted text preview: e listing of all instructions. This information documents the behavior of individual instructions in the 64-bit mode context. See also: 7-2 Vol. 1 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 non64-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 126.96.36.199 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 registers. It handles data transfers along the paths listed in Table 7-1. (See "MOV--Move Vol. 1 7-3 PROGRAMMING WITH GENERAL-PURPOSE INSTRUCTIONS to/from Control Registers" and "MOV--Move to/from Debug Registers" in Chapter 3, "Instruction Set Reference, A-M," of the Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2A, 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 are performed with the MOVS (string move) instruction (see Section 7.3.9, "String Operations"). 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. These instructions can be used to move a 16-bit or 32-bit value from memory to a general-purpose register or from one general-purpose register to another. The flag state being tested is specified with a condition code (cc) associated with the instruction. If the condition is not satisfied, a move is not performed and execution continues with the instruction following the CMOVcc instruction. Table 7-1. Move Instruction Operations
Type of Data Movement From memory to a register From a register to memory Between registers Source Destination Memory location General-purpose regist...
View Full Document
This note was uploaded on 10/01/2013 for the course CPE 103 taught by Professor Watlins during the Winter '11 term at Mississippi State.
- Winter '11