
iv
Contents
AMD 64-Bit Technology
24593—Rev. 3.09—September 2003
3.1
Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Legacy Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
64-Bit-Mode Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Implicit Uses of GPRs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Flags Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Instruction Pointer Register. . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Operand Sizes and Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . 44
Operand Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Data Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Instruction Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Data Transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Data Conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Load Segment Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Load Effective Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Rotate and Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Compare and Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Logical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Control Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Semaphores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Processor Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Cache and Memory Management . . . . . . . . . . . . . . . . . . . . . . 79
No Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
System Calls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
General Rules for Instructions in 64-Bit Mode. . . . . . . . . . . . 81
Address Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Canonical Address Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Branch-Displacement Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Operand Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
High 32 Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Invalid and Reassigned Instructions . . . . . . . . . . . . . . . . . . . . 83
Instructions with 64-Bit Default Operand Size. . . . . . . . . . . . 84
Instruction Prefixes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Legacy Prefixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
REX Prefixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Feature Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Control Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Privilege Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Procedure Stack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Jumps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.2
3.3
3.4
3.5
3.6
3.7