This is a sort of tutorial on programming in assembly using the
amd64 instruction set valid for the AMD64 and EM64T processors.
It is advisable you have a copy of the instruction manuals at your disposal. It is assumed that you are familiar with the x86-64 instruction set. Familiarity takes time and it comes with practice, and of course reading the instruction manuals. But you have to start somewhere. This tutorial is for application programming.
The x86-64 processor has the following sixteen 64-bit general purpose registers:
RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, R8, R9 , R10, R11, R12, R13, R14, R15.
- The eight 80-bit floating point registers are from
- These floating point registers overlap with the eight 64 bit media registers
- There are sixteen 128-bit media registers
- There also exist two other 64-bit registers, the instruction pointer
RIPand the conditional flags register
From the ABI the general purpose registers are used to pass arguments to the functions.
2020 Update: We have updated the code and compile instructions to run on Debian-based systems from 2020. Slamd64 is now a dead project.