Pourquoi est %EAX = %AX, %AX = (%AH + %AL). Pourquoi n'est-il pas une contrepartie %AX à l'égalité de %EAX?
Réponses
Trop de publicités?Juste pour quelques précisions. Au début microprocesseur jours des années 1970, les Processeurs avait seulement un petit nombre de registres et un jeu d'instructions très limité. Généralement, l'unité arithmétique ne pouvait fonctionner sur un seul PROCESSEUR inscrire, souvent désigné comme le "accumulateur". L'accumulateur sur la 8 bits 8080 & Z80 processeurs a été appelé "Un". Il y avait 6 autres fins générales de l'8 bits des registres: B, C, D, E, H Et L. Ces six registres pourraient être jumelés pour former 3 16 bits registres: BC, DE ET HL. En interne, l'accumulateur a été combinée avec les Drapeaux s'inscrire à la forme de l'AF 16 bits registre.
Quand Intel a développé la 16 bits de la famille 8086 ils voulaient être en mesure de le port 8080 du code, donc ils ont gardé la même base de registre de la structure:
8080/Z80 8086
A AX
BC BX
DE CX
HL DX
IX SI
IY DI
En raison de la nécessité de port 8 bits de code dont ils avaient besoin pour être en mesure de se reporter à chacun des 8 bits des pièces d'AX, en colombie-britannique, CX ET DX. Ceux-ci sont appelés AL, AH pour la basse & haute octets de AX et ainsi de suite pour les BL/BH, CL/CH & DL/DH. IX ET IY sur le Z80 ont toujours utilisé comme 16 bits pointeur de registres, de sorte il n'y a pas besoin d'accéder aux deux moitiés du SI & DI.
Lorsque le 80386 a été libéré dans le milieu des années 1980, ils ont créé "étendue" des versions de tous les registres. Donc, AX est devenu EAX, BX est devenu EBX etc. Il n'y a pas besoin d'accéder au top 16 bits de ces nouveaux étendu registres, de sorte qu'ils n'ont pas de créer un EAXH pseudo registre.
AMD a appliqué le même truc quand ils ont produit le premier processeurs 64 bits. La version 64 bits du registre AX est appelé RAX. Donc, maintenant vous avez quelque chose qui ressemble à ceci:
|63..32|31..16|15-8|7-0|
|AH.|AL.|
|AX.....|
|EAX............|
|RAX...................|
Dans le vieux 8 bits de l'époque, il y avait la Un registre.
Dans les 16 bits de l'époque, il y avait les 16 bits du registre AX, qui a été divisé en deux 8 pièces peu, AH et AL, pour les moments où vous avez toujours voulu travailler avec 8 bits.
Dans la version 32 bits de jours, les 32 bits de registre EAX a été introduite, mais la HACHE, AH, et AL registres ont tous été conservés. Les concepteurs n'ont pas jugé nécessaire d'introduire un nouveau 16 bits registre, qui abordait les bits 16 à 31 de EAX.