Logiciel de base : Assembleur Gnu pour les microprocesseurs Intel du 80386 au Pentium Pro
5
________________________________________________________________________
arithmétiques et certaines autres instructions l’accumulateur intervient comme un registre
spécialisé. Mais dans beaucoup d’autres instructions il peut être utilisé pour contenir l’adresse
d’un emplacement en mémoire.
Ø EBX. C’est le registre d’index. Il est utilisable comme EBX, BX, BH et BL. EBX peut, dans
certaines instructions contenir l’adresse d’un emplacement en mémoire programme. Il peut
également servir à adresser les données.
Ø ECX. C’est le registre qui sert de compteur dans beaucoup d’instructions (les instructions de
répétition d’une opération sur les chaînes utilisent CX, les déplacements et les rotations utilisent
CL, les boucles utilisent ECX ou CX). Il peut être également utilisé pour adresser des données
en mémoire.
Ø EDX. C’est un registre de données qui contient une partie du résultat dans les multiplications et
une partie du dividende dans les divisions. Il peut également servir à adresser les données.
Ø EBP. Ce registre contient toujours une adresse en mémoire pour y transférer des données. EBP
est utilisé comme nous le verrons plus loin comme base d’adressage des variables locales et des
paramètres d’une fonction en cours d’exécution.
Ø EDI. Utilisable comme registre général 16 bits (DI) ou 32 bits (EDI) . EDI contient l’adresse
destination dans les instructions manipulant des chaînes.
Ø ESI. Comme EDI il est utilisable comme registre général 16 bits (SI) ou 32 bits (ESI). Dans les
instructions de manipulation de chaînes il contient l’adresse de la source.
Ø EIP. Ce registre contient, à la fin d’une instruction, l’adresse de l’instruction suivante à exécuter.
Il peut être modifié par les instructions de saut ou d’appel et de retour de sous-programme.
Ø ESP. Ce registre est supposé contenir l’adresse d’une zone de mémoire gérée en pile.
Ø EFLAGS. Ce registre est le registre d’état du microprocesseur. Nous ne décrivons que les
indicateurs que nous utiliserons :
31…… ..12 11 10 7 6 4 0
O D S Z A C
Figure 3 Quelques indicateurs utiles du registre EFLAGS
Ø C. C’est le bit 0 du registre EFLAGS. Il contient la retenue après une addition ou une
soustraction.
Ø A. C’est le bit 4 du registre EFLAGS. Il contient le report observé entre les bits 3 et 4 du
résultat pour une addition ou une soustraction. Il n’est utilisé que les opération DAA et DAS
qui opèrent sur des nombre décimaux codés binaires.
Ø Z. C’est le bit 6 du registre EFLAGS. Il contient 1 si le résultat d’une opération arithmétique
ou logique est nul et 0 sinon.