Where I can find the 80x86 register full names? I know that EAX means Extended AX.
What is then, the meaning of AX? I.e. is AX an acronym?
Where I can find the 80x86 register full names? I know that EAX means Extended AX.
What is then, the meaning of AX? I.e. is AX an acronym?
The register names have evolved over the past 40 years. The Intel 8080 processor, introduced in 1974, had 8-bit registers named A, B, C, D, E, H and L. A thru E seem fairly obvious but H and L? Well, they were combined into the 16-bit HL register which was primarily used as a memory pointer, so H for high and L for low.
In 1979 Intel released the 8086 processor (the original IBM PC was based on its close cousin the 8088). The 8086 had 16-bit registers 4 "main" ones and 4 index registers. The main registers were called AX, BX,CX, DX, a natural eXtension of the 8080's A through D, each of these could also be referenced as two 8-bit registers which were called AL, AH, BL, BH, etc. The 8086 index register, also 16-bit, were called SI, DI, BP and SP after their primary functions. SI and DI for Source and Destination Index, SP for Stack Pointer, and BP for (stack) Base Pointer.
The extension to the 32-bit world, with the introduction of the 80386 in 1986, brought us EAX, EBX, ECX, EDX, ESI, EDI, EBP and ESP, the 32-bit variants of the registers, the 8086 names remained for the (lower) 16 bits and the 8 bit accessing required to maintain compatibility.
There things stood until AMD, beating Intel to market, defined 64-bit extensions.
It is perhaps interesting to note that binary code assembled for the 8086 processor is compatible with all the x86 processors which succeeded it.
References:
The canonical reference for all aspects of the x86 architecture can be found in the Intel Processor Manuals. The register documentation is a bit spread out, but you can find them in: