For the architecture x86 - 64bits there are the following registers:
General Registers [GPR]
As the name says, they are records of general use. They serve to do most common operations.
- Accumulator register
RAX
- Base registration
RBX
- Accountant Record
RCX
- Data Registration
RDX
All these registers allow access to sections of themselves, for this we must refer to them as RAX
for 64 bits; EAX
for 32 bits; AX
for the first 16 bits; AH
for the second half of the first 16 bits; AL
for the first 8 bits. This applies to all other general records (and also for indexes and pointers). To understand how they are distributed you can see the following scheme:
[ 64 bits = 8 Bytes RAX ]
[ 32 bits = 4 Bytes | EAX ]
[ | | AX ]
[ | | AH | AL ]
Indexes and pointers
This keeps indexes and pointers (memory addresses).
- Destination index record [Destination index]
RDI
- Source index record [Source index]
RSI
Used to maintain the address of destination and origin (respectively) in copy operations of arrays (vectors) and text strings.
- Pointer to stack origin record [Stack Base pointer]
RBP
This record maintains the address of the origin of the stack.
- Pointer to stack log [Stack pointer]
RSP
This record keeps the address of the most recent element in the stack.
- Pointer record to instruction
EIP
This record maintains the address of the following instruction.
As in the general registers, portions of these registers can be accessed with RSI
, ESI
and SI
. (also applies for other records eg: RDI
, EDI
, DI
).
You can see more information about the missing record at X86 architecture.