CPU Registers
General Purpose Registers
32-bit
| Register | Description | Usage |
|---|---|---|
eax | Accumulator | Arithmetic operations, I/O port access, interrupt calls, and some other operations |
ebx | Base | Pointer to data in the DS segment |
ecx | Counter | Loop counter for string and loop operations |
edx | Data | I/O port access, arithmetic operations |
esi | Source | Pointer to data in the segment pointed to by the DS register; source pointer for string operations |
edi | Destination | Pointer to data (or destination) in the segment pointed to by the ES register; destination pointer for string operations |
esp | Stack | Pointer to the current location on the stack |
ebp | Base Pointer | Pointer to data on the stack |
eip | Instruction Pointer | Pointer to the next instruction to be executed |
64-bit
| Register | Description | Usage |
|---|---|---|
rax | Accumulator | Arithmetic operations, I/O port access, interrupt calls, and some other operations |
rbx | Base | Pointer to data in the DS segment |
rcx | Counter | Loop counter for string and loop operations |
rdx | Data | I/O port access, arithmetic operations |
rsi | Source | Pointer to data in the segment pointed to by the DS register; source pointer for string operations |
rdi | Destination | Pointer to data (or destination) in the segment pointed to by the ES register; destination pointer for string operations |
rsp | Stack | Pointer to the current location on the stack |
rbp | Base Pointer | Pointer to data on the stack |
rip | Instruction Pointer | Pointer to the next instruction to be executed |
Segment Registers
| Register | Description | Usage |
|---|---|---|
cs | Code Segment | Pointer to the current code segment |
ds | Data Segment | Pointer to the current data segment |
es | Extra Segment | Pointer to an extra data segment |
fs | Extra Segment | Pointer to an extra data segment |
gs | Extra Segment | Pointer to an extra data segment |
ss | Stack Segment | Pointer to the current stack segment |