Liste des registres Intel x86

Un article de Haypo.

Retour à la page précédente Retour à l'assembleur

[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.