Why are x86 registers named the way they are?
For example, the accumulator is named EAX
and, while the instruction pointer is called IP
. I also know that there are bytes called CL
and DH
. I know there must be a convention to all of the names, but what is it?
Solution 1:
The C and the D are numbers/types and H for high and L for low parts of the higher register. http://en.wikipedia.org/wiki/X86
Wikipedia explains it very well.
More from the Wikipedia:
- AX/EAX/RAX: accumulator
- BX/EBX/RBX: base
- CX/ECX/RCX: counter
- DX/EDX/RDX: data/general
Solution 2:
Something i found
* EAX - Accumulator Register
* EBX - Base Register
* ECX - Counter Register
* EDX - Data Register
* ESI - Source Index
* EDI - Destination Index
* EBP - Base Pointer
* ESP - Stack Pointer