description |
---|
A few cheatsheet-like things about the Assembly language |
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.md for writing malicious Assembly code and some examples of compiling