The odd placement of (E) BX is probably due to the fact that 8086 came from 8080.
The 8080 has a battery (A) and 6 general purpose registers B, C, D, E, H and L, where B / C, D / E and H / L can be used in pairs, and in a specific H / L can be used as an address to access memory. 8086 was designed in such a way that the existing 8080 code could easily be translated into it; I think it would be logical to display the registers in the following order:
8080 register A -> 8086 internal register 0 B,C -> 1 D,E -> 2 H,L -> 3 SP -> 4
As noted in another answer, AX, BX, CX and DX in 8086 are not just arbitrary names for 4 general-purpose registers - they have mnemonic values ββfor special functions that have these registers: "battery", "base" " account "and" data ". Given the comparison above, it makes sense to assign a βbatteryβ for internal register 0 and a βbaseβ function for internal register 3. (And 8086 of internal registers 5, 6, and 7 are BP, SI, and DI, which were new features.)
Of course, all this is just a little informed (see here ), speculation - only 8086 designers know for sure ...
source share