Assembly

A few cheatsheet-like things about the Assembly language

Registers

Generally, r-prefixed registers are 64-bit, e-prefixed registers are 32-bit, non-prefixed registers are 16-bit, and l-suffixed registers are 8-bit. For r8-15 see the special cases below (source):

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 (r8l)

r9

r9d

r9w

r9b (r9l)

r10

r10d

r10w

r10b (r10l)

r11

r11d

r11w

r11b (r11l)

r12

r12d

r12w

r12b (r12l)

r13

r13d

r13w

r13b (r13l)

r14

r14d

r14w

r14b (r14l)

r15

r15d

r15w

r15b (r15l)

See Shellcode for writing malicious Assembly code and some examples of compiling

Last updated