Exposé sur le thème : Microprocesseurs Intel 8086
Introduction
Le microprocesseur Intel 8086, lancé en 1978, est l’un des processeurs les plus
emblématiques de l’histoire de l’informatique. Ce processeur 16 bits a marqué un tournant
dans l’évolution des architectures, devenant la base de l’écosystème x86 utilisé encore
aujourd’hui dans les ordinateurs modernes.
1. Caractéristiques principales du 8086
1. Architecture interne :
o Processeur 16 bits : Capable de traiter des données sur 16 bits simultanément.
o Bus d’adresse de 20 bits : Permet d’adresser jusqu’à 1 Mo de mémoire, une
avancée majeure par rapport à ses prédécesseurs (comme le 8085).
o Bus de données de 16 bits : Augmente la vitesse de transfert par rapport aux
processeurs 8 bits.
2. Jeu d’instructions :
o Supporte des instructions complexes pour les calculs, la manipulation de bits et
les sauts conditionnels.
o Compatible avec les programmes écrits pour le 8080 et le 8085.
3. Vitesse d’exécution :
o Fréquence d’horloge allant de 5 MHz à 10 MHz selon les modèles.
4. Modes de fonctionnement :
o Mode réel : Accès direct à la mémoire sans segmentation avancée.
2. Architecture du microprocesseur 8086
1. Unité d’exécution (EU) :
o Effectue les calculs arithmétiques et logiques.
o Gère les instructions du programmeur.
o Contient des registres tels que l’accumulateur (AX), les registres de base (BX),
et les registres d’index (SI, DI).
2. Unité d’interface de bus (BIU) :
o Gère l’échange de données avec la mémoire et les périphériques.
o Utilise des mécanismes comme la prélecture d’instructions (pipeline).
3. Segmentation mémoire :
o La mémoire est divisée en segments (code, données, pile, extra).
o Facilite l’organisation et l’extension de la mémoire.
3. Avancées technologiques apportées par le 8086
1. Base des architectures x86 :
o Tous les processeurs Intel modernes (y compris les Core i7 ou Xeon) dérivent
du 8086.
2. Introduction du multitâche :
o Bien que limité, le 8086 a permis de poser les bases du traitement multitâche.
3. Compatibilité :
o Compatible avec un large éventail de périphériques et de contrôleurs (ex. :
8255 pour les E/S, 8259 pour les interruptions).
4. Applications du microprocesseur 8086
1. Ordinateurs personnels :
o Utilisé dans les premiers PC d’IBM, devenus un standard de l’industrie.
2. Systèmes embarqués :
o Présent dans les contrôles industriels, systèmes de signalisation, etc.
3. Éducation :
o Toujours étudié pour comprendre les bases des microprocesseurs et des
architectures informatiques.
Conclusion
Le microprocesseur Intel 8086 a joué un rôle fondamental dans l’histoire de l’informatique.
Grâce à ses innovations, il a ouvert la voie à des générations de processeurs qui continuent de
dominer l’informatique aujourd’hui. Étudier le 8086, c’est comprendre les bases de
l’architecture et des systèmes modernes.
Questions ?
II. Rappels sur le microprocesseur Intel 8086
Développé en 1978 par Intel, le microprocesseur 8086 est un processeur CISC 16 bits.
Il s’agit du premier microprocesseur de la famille des « x86 » comprenant les célèbres 80386
et 80486.
Ses caractéristiques principales sont les suivantes :
Bus de données d’une largeur de 16 bits.
Bus d’adresses de 20 bits, ce qui permet d’adresser un total de 1 mégaoctet de mémoire.
14 registres de 16 bits dont un registre d’état contenant des indicateurs binaires.
La mémoire est segmentée en 16 blocs de 64 Ko et une adresse sur 20 bits est obtenue en combinant
deux parties :
Le registre CS permet de stocker les 4 bits de poids fort donnant le numéro de
segment de mémoire ;
Le registre IP fournit les 16 bits de poids faible donnant l’adresse à l’intérieur du
segment de mémoire spécifié par CS.
L’adresse mémoire est retrouvée selon la formule :
adresse = (16 x CS) + IP.
Le 8086 autorise un mode de fonctionnement en pas à pas, ainsi que l’utilisation
d’opérations spécifiques appelées interruptions permettant au 8086 de « dialoguer » avec les
autres périphériques de l’ordinateur.
Les registres du 8086 se décomposent en 4 grandes familles :
4 registres de données, se décomposant chacun en deux parties : une partie
« haute » et une partie « basse » de 8 bits chacune, ce qui permet au
microprocesseur de manipuler des données sur 8 ou 16 bits :
- AX (décomposable en AH et AL) sert d’accumulateur et est principalement
utilisé lors d’opérations arithmétiques et logiques ;
- BX est la plupart du temps utilisé comme opérande dans les calculs ;
- CX est utilisé comme compteur dans les structures itératives ;
- DX, tout comme AX, est utilisé pour les calculs arithmétiques et notamment
dans la division et la multiplication. Il intervient également dans les
opérations d’entrées/sorties.
registres de segmentation :
- CS (segment de code) permet de déterminer les adresses sur 20 bits ;
- DS (segment de données) ;
- SS (segment de pile) ;
- ES (segment supplémentaire).
registres pointeurs ou d’index :
- SP (pointeur de pile) pointe sur le sommet de la pile de données ;
- BP (pointeur de base) pointe sur la base de la pile de données ;
- SI (index de source) ;
- DI (index de destination).
pointeur d’instruction : IP stocke l’adresse de la prochaine instruction à exécuter par
le microprocesseur.
registre spécial contenant 9 indicateurs binaires nommés « flags » :
- AF (indicateur de retenue auxiliaire) ;
- CF (indicateur de retenue) est mis à 1 lorsqu’il y a eu une retenue lors d’un
calcul ;
- OF (indicateur de débordement) est mis à 1 lorsqu’un débordement
arithmétique a eu lieu (lorsque le résultat d’une opération ne peut tenir sur
16 bits) ;
- SF (indicateur de signe) représente le signe du résultat d’une opération (0 =
positif, 1 = négatif) ;
- PF (indicateur de parité) est mis à 1 lorsque le résultat d’une opération
contient un nombre pair de 1 ;
- ZF (indicateur de zéro) est mis à 1 lorsque le résultat d’une opération vaut 0 ;
- DF (indicateur de direction) ;
- IF (indicateur d’autorisation d’interruption) ;
- TF (indicateur d’interruption pas à pas).
Le 8086 est programmable dans un langage d’assemblage comportant des instructions
utilisant les registres, les flags, la mémoire et, en ce qui concerne les interruptions, d’autres
éléments de l’ordinateur. Voici un aperçu des instructions les plus couramment utilisées (dans
la liste qui suit, les mots entre parenthèses indiquent le nom de l’instruction). Ces instructions
seront étudiées plus en détail dans la section consacrée à la partie « CPU » de notre émulateur.
Instructions arithmétiques : addition (ADD), soustraction (SUB), multiplication (MUL),
division (DIV), incrémentation (INC), décrémentation (DEC) et échange (XCHG) ;
Instructions logiques : et (AND), ou (OR) et non (NOT) ;
Instruction de comparaison (CMP) : met à jour les flags pour permettre l’utilisation des
instructions de saut ;
Instructions de saut : saut si égal (JE), saut si différent (JNE), saut si inférieur (JL), …
Instructions de gestion de la pile : empilement (PUSH) et dépilement (POP)
Instruction d’appel (CALL) et de retour (RET) ;
De nombreuses autres instructions que nous ne détaillerons pas ici.