The AMD64 Architecture is specified by the following documents
AMD64 Architecture Programmer's Manual, Volume 1: Application Programming 24592 3.08
AMD64 Architecture Programmer's Manual, Volume 2: System Programming 24593 3.08
AMD64 Architecture Programmer's Manual, Volume 3: General Purpose and System Instructions 24594 3.03
AMD64 Architecture Programmer's Manual, Volume 4: 128-bit Media Instructions 26568 3.04
System V Application Binary Interface AMD64 Architecture Processor Supplement, Draft Version 0.90
Applications conforming to this specification must provide feedback to the user if a feature that is required for correct execution of the application is not present. Applications conforming to this specification should attempt to execute in a diminished capacity if a required instruction set feature is not present.
Only instructions which do not require elevated privileges may be used.
Applications may not make system calls directly. The interfaces in the C library must be used instead.
This specfication does not provide any performance guarantees of a conforming system. A system conforming to this specification may be implemented in either hardware or software.