Liste des registres Intel x86
Un article de Haypo.
[modifier] Liste des registres Intel x86
Il existe plusieurs registres ayant un sens plus ou moins précis (ils peuvent avoir une utilisation différente) :
- AL/AH/EAX : Registre général, sa valeur change très vite.
- BL/BH/EBX : Registre général, peut servir d'offset mémoire (exemple : "mov al, byte ptr ds:[bx+10]").
- CL/CH/ECX : Sert en général de compteur pour les boucles (exemple : "mov ecx, 5 ; rep movsd" : copie 5 doubles mots).
- DL/DH/EDX : Registre général, obligatoire pour l'accès aux ports (moyen de communiquer avec toutes les puces de l'ordinateur, par exemple les ports 42h et 43h servent à contrôler le haut-parleur interne. Voyez les instructions IN et OUT.
- CS : Segment mémoire du code.
- DS : Segment mémoire des données.
- ES : Segment mémoire.
- FS : Autre segment mémoire.
- GS : Autre segment mémoire.
- SS : Segment mémoire de la pile ("S" = Stack = Pile).
- BP : Offset mémoire, très souvent une copie de SP à laquelle on soustrait une valeur pour lire dans la pile (on ne doit pas modifier SP).
- EDI/DI : Offset mémoire utilisé avec ES (ou FS ou GS si spécifié, exemple : "mov al, byte ptr gs:[10]").
- EIP/IP : Offset mémoire du code (inaccessible directement, modifiable indirectement avec l'instruction CALL, JMP, ou J[cas]).
- ESI/SI : Offset mémoire utilisé avec DS.
- ESP/SP : Offset mémoire de la pile.