Assembleur/Les registres processeur
Apparence
Les registres du processeur
[modifier | modifier le wikicode]Les registres du processeur sont des cases mémoire. Toutes les instructions du processeur passent par ces registres pour les opérations (calcul arithmétique/logique, transfert, entrée/sortie). La taille des registres dépend des processeurs, dans notre cours les processeurs de la famille x86 ont des registres de 16 bits. Le programmeur n’est pas obligé d’utiliser toute la taille du registre. Il peut accéder seulement aux parties basses ou hautes des registres (on remplacera AX par AL pour la partie basse et AX par AH pour la partie haute).
Les registres généraux
[modifier | modifier le wikicode]Ils servent principalement aux calculs :
- AX, correspond à l'accumulateur
- BX, au registre de base
- CX, au compteur
- DX, à l'extension de l'accumulateur
Les registres d'adressage
[modifier | modifier le wikicode]Ils servent aux adressages d'opérandes :
- SI, index de source
- DI, index de destination
- BP, pointeur de base
Les registres de commande
[modifier | modifier le wikicode]- SP, pointeur de la pile
- IP, pointeur d'instruction
- FLAGS, registre d'état
Le registre d'état contient toutes les informations servant à contrôler le déroulement du programme :
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
XX | XX | XX | XX | OF | DF | IF | TF | SF | ZF | XX | AF | XX | PF | XX | CF |
- L'indicateur de signe SF indique si le résultat de la dernière opération arithmétique ou logique est positif ou négatif.
- L'indicateur de zéro ZF indique que le résultat de la dernière opération a été égal à zéro.
- L'indicateur de parité PF indique si le nombre de uns du résultat est pair ou impair.
- L'indicateur de retenue CF permet au processeur des opérations arithmétiques à plus grande précision.
- L'indicateur de débordement OF
- L'indicateur d'interruptions pas-à-pas TF aide aux mises au point des programmes.
- L'indicateur d'interruption contrôle les interruptions externes.
- L'indicateur de direction DF
Les registres de segment
[modifier | modifier le wikicode]- CS, segmentation de code
- DS, segmentation de données
- SS, segmentation de pile
- ES, segmentation de données supplémentaires