Académique Documents
Professionnel Documents
Culture Documents
32
Chapitre III Etude d’un microprocesseur 16 bits (8086)
Son architecture est basée sur deux unités internes distinctes : l'unité d'exécution (UE)
et l'unité d'interfaçage avec le bus (UIB). Le rôle de l'UIB est de récupérer et stocker les
informations à traiter, et d'établir les transmissions avec les bus du système. L'UE exécute les
instructions qui lui sont transmises par l'UIB (figure III.2).
33
Chapitre III Etude d’un microprocesseur 16 bits (8086)
34
Chapitre III Etude d’un microprocesseur 16 bits (8086)
Le registre d'état (Flags) est formé de plusieurs bits appelés drapeaux ou indicateurs qui
sont positionnés automatiquement par l'unité arithmétique et logique après chaque opération.
Trois (3) de ces bits participent au control du microprocesseur. (Figure III.3)
CF (Carry Flag) : Indicateur de report ou retenue. Ce bit est mis à 1 si une addition ou une
soustraction a générée une retenue ou un report.
PF (Parity Flag) : Indicateur de parité paire. Ce bit est mis à 1 si (après une opération
arithmétique ou logique) le résultat contient un nombre pair de ʺ1ʺ.
AF (Auxiliary Carry Flag) : Indicateur de retenue auxiliaire. Ce bit est mis à 1 s’il y a retenue
du quartet de poids faible vers le quartet de poids plus fort (calcul BCD).
ZF (Zero Flag) : Indicateur de zéro. Ce bit est mis à 1 si le résultat d’une opération arithmétique
ou logique et nul.
SF (Sign Flag) : Indicateur de signe. Ce bit est mis à 1 si le résultat d’une opération arithmétique
ou logique est négatif.
TF (Trap Flag) : Indicateur d’exécution pas à pas. On met ce bit à 1 pour une exécution du
programme pas à pas.
35
Chapitre III Etude d’un microprocesseur 16 bits (8086)
DF (Direction Flag) : Indicateur de direction. En traitant les chaînes de caractères, si ce bit est
mis à 1, on commence par les adresses hautes vers les adresses basses (auto
décrémentation de SI et DI). Si le bit est mis à 0, on fait les traitements en inverse.
OF (Overflow Flag) : Indicateur de dépassement arithmétique. Ce bit est mis à 1 lorsque la taille
du résultat d'une opération excède la capacité de son emplacement de destination.
(Un bit significatif a été perdu). [7]
Tous les registres du 8086 ont une taille de 16 bits. Avec cette taille on peut accéder à
65536 emplacements mémoires différents (216 = 64 Ko). La largeur du bus d’adresses du 8086
est de 20 bits soit un espace mémoire adressable de 1 Méga (220 = 1 Mo). Nul registre ne couvre
la totalité de cet espace mémoire. Pour résoudre ce problème, Intel propose de segmenter la
mémoire en petit bloc de 64Ko chacun. Pour indiquer une adresse mémoire au processeur on
doit utiliser deux registres. Chaque segment débute à l'endroit spécifié par le registre segment.
Le déplacement (offset) à l'intérieur de chaque segment se fait par un autre registre qui permet
de trouver une information à l'intérieur du segment.
37
Chapitre III Etude d’un microprocesseur 16 bits (8086)
l’accès. Le poids fort de l’adresse de chaque zone est la valeur contenue dans le registre
segment, l’emplacement mémoire voulu dans ce segment est référencé par un registre d’offset.
Toutes les références de mémoire sont faites par rapport aux adresses de base contenues
dans les registres de segments. Les types de segments ont été choisis en fonction des besoins
des programmes. Le registre de segment à sélectionner, s’il n’est spécifié explicitement, sera
automatiquement choisi selon le tableau de correspondance suivant :
Si on veut accéder à un mot : le poids faible sera chargé sur les lignes D0..D7 et le poids
fort sera chargé sur les lignes D8..D15 (si l'adresse est paire, l'accès se fait avec un seul cycle).
Si l’adresse du mot voulu est impaire, alors l’accès se fait en deux cycles. Le premier cycle pour
chercher l’octet de l’adresse impaire et le second pour chercher l’octet de l’adresse paire. Le
flux de données est toujours extrait de la mémoire sous forme de mots et est adressé en interne
par le processeur au niveau de l'octet si nécessaire. Le microprocesseur doit ensuite permuter
ces deux octets pour avoir le poids faible sur les lignes D0..D7 et le poids fort sur les lignes
D8..D15.
38
Chapitre III Etude d’un microprocesseur 16 bits (8086)
réaliser un petit système monoprocesseur. La broche MN/ MX doit être maintenue à l’état
haut, le 8086 contrôle alors lui-même le bus et génère les signaux de commande de bus sur les
broches 24 à 31 (figure III.7). Pour maintenir stable les 20 bits d’adresse, on a besoin de trois
tampons d’adresses (8282 ou autres). Le signal ALE est utilisé à cet effet.
Pour renforcer les signaux du bus de données, on utilise deux driver de bus
bidirectionnels 8286 ou autres. Ces deux circuits sont optionnels puisque le microprocesseur
maintient les données valides tout le long du cycle d’écriture/lecture. Le signal DT/ R est
39
Chapitre III Etude d’un microprocesseur 16 bits (8086)
processeurs. Lorsque la broche MN/ MX est à l’état bas, le 8086 traite les broches 24 à 31 en
mode maximum. Un contrôleur de bus tel que le circuit 8288 est nécessaire. Ce dernier
interprète les informations d'état codées en S0, S2, S2 (figure III.1) pour générer les signaux de
synchronisation et de commande de bus compatibles avec l'architecture MULTIBUS
(figureIII.8).
Dans ce mode le jeu d’instruction du microprocesseur est étendu pour inclure les
deux signaux par le contrôleur de bus 8288 ; un signal de lecture mémoire ( MRDC ) et un
signal de lecture d’E/S ( IORC ). La même chose s’applique au signal d’écriture WR ; l’un
41
Chapitre III Etude d’un microprocesseur 16 bits (8086)
42