Il s'agit d'une lecture structurée pour l'assemblage x86 , elle est écrite dans la langue la plus simple possible avec des exemples du monde réel. ?
| Type Intel | Bits | Nom |
|---|---|---|
| - | 8 bits | OCTET |
| 8086 | 16 bits | MOT |
| i386 | 32 bits | Dword |
| x86 | 64 bits | Qword |
dword = dword = (double mot)
qword = qword = (quad-word)
Sur les processeurs ARM 32 bits, un mot est 32 bits.


(Texte plus ancien de l'Université de Virginie Computer Science (2006), l'un des meilleurs guides de l'assemblée x86)
Les processeurs modernes (c'est-à-dire 3 86 et au-delà) x 86 ont huit registres à usage général 32 bits, comme le montre la figure 1. Les noms de registre sont principalement historiques . Par exemple, EAX s'appelait l'accumulateur car il a été utilisé par un certain nombre d'opérations arithmétiques, et ECX était connu sous le nom de compteur car il a été utilisé pour contenir un indice de boucle. Alors que la plupart des registres ont perdu leurs objectifs spéciaux dans l'ensemble d'instructions moderne, par convention, deux sont réservés à des fins spéciales - le pointeur de pile (ESP) et le pointeur de base (EBP).
Pour les registres EAX , EBX , ECX et EDX , des sous-sections peuvent être utilisées. Par exemple, les 2 octets les moins significatifs d' EAX peuvent être traités comme un registre 16 bits appelé AX . L'octet de hache le moins significatif peut être utilisé comme un seul registre 8 bits appelé AL , tandis que l'octet le plus significatif de AX peut être utilisé comme un seul registre 8 bits appelé AH . Ces noms se réfèrent au même registre physique. Lorsqu'une quantité de deux octets est placée dans DX , la mise à jour affecte la valeur de DH , DL et EDX . Ces sous-régistes sont principalement des titres à partir de versions 16 bits plus anciennes de l'ensemble d'instructions. Cependant, ils sont parfois pratiques lorsqu'ils traitent des données inférieures à 32 bits (par exemple, les caractères ASCII 1 octet) .
Lorsque vous faites référence aux registres dans le langage d'assemblage, les noms ne sont pas sensibles à la casse . Par exemple, les noms EAX et EAX se réfèrent au même registre .


En x86, les registres ont un « e » devant leur nom.
Exemple: E AX, E BX, E CX, E DX, E BP
Informations supplémentaires:
Dans x64, vous avez un « R » à la place.
Exemple: R AX, R BX, R CX, R DX, R BP
Vous avez également un point flottant à double précision allant de XMM0 à XMM15 .

Assemblage complet de la poignée x86, 20 pages.

