The x86_64 architecture provides a set of general-purpose registers, each 64 bits wide. The registers are named as follows: %rax
, %rbx
, %rcx
, %rdx
, %rsi
, %rdi
, %rbp
, %rsp
, %r8-%r15
.
Additionally, there are eight 64-bit
SIMD (Single Instruction, Multiple Data) registers: %xmm0-%xmm7
, which can be used for floating numbers.
C declaration | Intel data type | suffix | Size (Bytes) |
---|---|---|---|
char | Byte | b | 1 |
short | Word | w | 2 |
int | word | l | 4 |
long int | Quad word | q | 8 |
char * | Quad word | q | 8 |
The transition to 64-bit should go smoothly if you have a solid understanding of 32-bit assembly. For more information, please click on the first two references listed below.
-
x86-64 Machine-Level Programming by Randal E. Bryant and David R. O’Hallaron
-
Understanding Frame Pointers with graphical example.****