x86-32bit
| Register | Lower 16 bits | High 8 bits of lower 16 bits | Low 8 bits of lower 16 bits | Description |
|---|---|---|---|---|
| eax | ax | ah | al | accumulator |
| ebx | bx | bh | bl | base register |
| ecx | cx | ch | cl | counter register |
| edx | dx | dh | dl | data register - can be used for I/O port access and arithmetic functions |
| esi | si | source index register | ||
| edi | di | destination index register | ||
| ebp | bp | base pointer register | ||
| esp | sp | Stack pointer | ||
| eip | instruction pointer | |||
| flags | flags |
x86-64bit
| Register | Lower 32 bits | Lower 16 bits | High 8 bits of lower 16 bits | Low 8 bits of lower 16 bits | Description |
|---|---|---|---|---|---|
| rax | eax | ax | ah | al | accumulator |
| rbx | ebx | bx | bh | bl | base register |
| rcx | ecx | cx | ch | cl | counter register |
| rdx | edx | dx | dh | dl | data register - can be used for I/O port access and arithmetic functions |
| rsi | esi | si | sil | source index register | |
| rdi | edi | di | dil | destination index register | |
| rbp | ebp | bp | bpl | base pointer register | |
| rsp | esp | sp | spl | Stack pointer | |
| 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 | ||
| rip | 0x09 | instruction pointer | |||
| rflags | 0x0a | flags |