views:

475

answers:

6

Google doesn't show the result,

Anyone knows?

+3  A: 

Nothing. It was just a naming convention Intel adopted.

Mihai
I bet someone in Intel though had something to do with it and knows of some really pervy reason why it is what it is, even if it is stupid.
thecoshman
see answer from Guffa - it's not 'just a naming convention'
KevinDTimm
+5  A: 

Nothing, as far as I know. It stands for a general purpose register.

The 16 bit AX register can be addressed as AH (high byte) and AL (low byte).

The EAX register is the 32 bit version of the AX register. The E stands for extended.

Guffa
The 8080, 8085 and Z80 had 8-bit registers A, B, etc. The 8086 had the 16-bit AX, EX etc registers. The 80386 and above got the EAX. I assumed that the E and the X both stood for 'extended', the X for 16-bit extension and the E for 32-bit extension.
Jonathan Leffler
@Jonathan: The X might have been inspired by "extended" but I haven't yet found that described anywhere. If there is no official meaning for the X, that would explain how they could add another "extended" without feeling silly. Naming it the "Extended Accumulator eXtended" register would seem like a lack of imagination... :)
Guffa
@Guffa: kind of like 'C' got its name - C for Code.
dboarman
+2  A: 

As Mihai says, it is just a naming convention.

However, given that 'X' is often used for "fill in your value" and is commonly used by mathematicians as the first variable name of choice in equations, and that those particular registers are general purpose (as opposed to say ESP which is the extended (32-bit) stack pointer or EIP the extended instruction pointer) that is perhaps why X is chosen as opposed to say 'B'.

Ninefingers
equally though, variables tend be names, A B C... but it could be the reason.
thecoshman
Well, true, some people go for a,b,c, others for x,y,z... I'm just guessing to be honest.
Ninefingers
A: 

One posible reason I can think of, is to denote that it has not 'normal' state. When talking about serial communication in electronics, if one of the data lines can be anything, you might say its state is X as it is neither/both/either 0 or 1.

thecoshman
A: 

Nothing. Intel just thought it looked better if all of the registers had 2-letter names (the 'E' came later).

dan04
+4  A: 

The X means pair, and goes back to at least the 8080. It had 8-bit registers B,C,D,E,H,L (among others) which could also be used in pairs (BC, DE and HL). The BC and DE pairs were used mostly for 16-bit arithmetic; the HL pair generally held a memory address. Some examples of the usage of X for pair:

LXI  D,12ABH    ; "load pair immediate"
DCX  B          ; "decrement pair"
STAX D          ; "store A (indirect) at pair"

Fast forward to the 8086. It has registers AL,AH,BL,BH,CL,CH,DL,DH, which, similarly to the 8080, can be used in pairs: AX, BX, CX, DX.

As others have pointed out, the E in the 32-bit register names means extended.

I. J. Kennedy