
Contents
iii
24593—Rev. 3.09—September 2003
AMD 64-Bit Technology
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Contact Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Related Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxxi
1
Overview of the AMD64 Architecture . . . . . . . . . . . . . . . . . . . . 1
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
New Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Media Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Floating-Point Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Modes of Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Long Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
64-Bit Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Compatibility Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Legacy Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Memory Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2
2
2.1
Memory Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Virtual Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Segment Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Physical Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Memory Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Byte Ordering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
64-bit Canonical Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Effective Addresses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Address-Size Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
RIP-Relative Addressing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Near and Far Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Stack Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Instruction Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
General-Purpose Programming. . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2
2.3
2.4
2.5
3