This is actually an interesting story,
Back in the days when we had 8 bit processors (8 bit processors means registers in processors will be able to hold 8 bit data), registers were called like,AL, BL
So, when we moved to 16 bit processors, we named them as,AX, BX.. (AX can be broken into AH and AL
Similarly, when we moved to 32 bit processors we named registers as,EAX, EBX, ECX, EDX.
Do you think in 64 bit processors we will have another name for registers?Yes, You are absolutely right, we have different names for registers. They are called,RAX, RBX, RCX, RDX etc.
(PS: We have 8 more registers on x64 processors named R8, R9, R10... till R15)
Some more information from Julian,Not all 8-bit processors used AL, BL etc. For example, the Motorola 6800 used A, B, X, SP, PC, and CCR for flags. The 6801 extended this by allowing A & B to be combined as D. The Zilog Z80 used A, F, B, C, D, E, H, L, IX & IY, SP & PC. B could be combined with C to form BC, D with E (DE)and H with L (HL). A was combined with the flag register F. IX, IY were 16 bit registers.
The 8080 had A,B,C,D,E,H, and L. From which the modern EAX->AX->AH/AL derive. What's even cooler is they were named that for a reason:
A = Accumulator register
B = Base address register
C = Count register
D = Data Register
I'm not sure E, H, and L really stood for anything.. still it's amazing we're still stuck with that legacy uh?
"I'm not sure E, H, and L really stood for anything.. still it's amazing we're still stuck with that legacy uh?"
Extended, Low and High. :)
So, what does the R stand for on 64 bit chips?
EAX=0D0995D0 EBX=0D1F3870 ECX=002DB7AF EDX=0D16E98F
ESI=0D1F2A30 EDI=252DB750 FLG=00010246
EBP=035FD770 ESP=0018F064 EIP=00D06D33
CS=0023 DS=002B SS=002B ES=002B FS=0053 GS=002B