The x86_64 instruction set architechture includes 16 general purpose regisers, each of which can be addressed in full, or by the lower 32, 16 and 8 bits.
64-bit Register | Lower 32 bits | Lower 16 bits | Lower 8 bits |
---|---|---|---|
rax |
eax |
ax |
al |
rbx |
ebx |
bx |
bl |
rcx |
ecx |
cx |
cl |
rdx |
edx |
dx |
dl |
rsi |
esi |
si |
sil |
rdi |
edi |
di |
dil |
rbp |
ebp |
bp |
bpl |
rsp |
esp |
sp |
spl |
r8 |
r8d |
r8w |
r8b |
r9 |
r9d |
r9w |
r9b |
r10 |
r10d |
r10w |
r10b |
r11 |
r11d |
r11w |
r11b |
r12 |
r12d |
r12w |
r12b |
r13 |
r13d |
r13w |
r13b |
r14 |
r14d |
r14w |
r14b |
r15 |
r15d |
r15w |
r15b |
General purpose registers in x86_64 are addressed as follows, using rax
as an example:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━rax━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┏━━━━━━━━━━━━━━eax━━━━━━━━━━━━━┫ ┃ ┃ ┏━━━━━━ax━━━━━━┫ ┃ ┃ ┃ ┏━━al━━┫ 0000000000000000000000000000000000000000000000000000000000000000