Le placement impair de (E) BX est probablement dû à la façon dont le 8086 évolué à partir du 8080.
Le 8080 possède un accumulateur (A) et 6 registres à usage général B, C, D, E, H et L, où B/C, D/E et H/L peuvent être utilisés ensemble par paires, et en particulier H/L peut être utilisé comme adresse pour l'accès à la mémoire. Le 8086 a été conçu pour que le code 8080 existant puisse être facilement traduit en Je suppose que cela semblait logique de cartographier les registres dans l'ordre suivant:
8080 register A -> 8086 internal register 0
B,C -> 1
D,E -> 2
H,L -> 3
SP -> 4
Comme il est indiqué dans une autre réponse, AX, BX, CX et DX dans le 8086 ne sont pas seulement des noms arbitraires pour 4 registres à usage général - ils avoir des significations mnémoniques pour les fonctions spéciales que ces registres ont: "accumulateur", "base", "compte" et "données". Étant donné le mappage ci-dessus, il est logique d'affecter la fonction "accumulateur" au registre interne 0, et la fonction "base" au registre interne 3. (Et les registres internes 8086 5, 6 et 7 sont BP, SI et DI, étaient nouvelles fonctionnalités)
Bien sûr, cela est vraiment tout juste un peu au courant (voir here par exemple) la spéculation -. que les 8086 designers savent sûr ... Je ne sais pas
pourquoi vous pensez qu'ils doivent être en n'importe quel ordre certain à moins bien sûr qu'ils soient poussés sur une pile. De plus cela dépend du type d'incrément que vous faites, "word", "byte" etc ... Le stockage de destination peut être soit l'emplacement de la mémoire, soit les registres. – EKet
Comme c'est EAX, EBX etc ce sont des registres 32 bits ... Et bien, sauf l'ebx, ils semblent être alphabétique, non? – 0x90