Cours Microprocesseur G3 RTM ISIG KINDU
Cours Microprocesseur G3 RTM ISIG KINDU
Cours Microprocesseur G3 RTM ISIG KINDU
Sommaire
Chapitre 1 : Introduction aux microprocesseurs .................................................................................................. 4
I.1 Introduction .............................................................................................................................................. 4
I.2 Architecture d'un système à microprocesseur.................................................................................. 4
I.2.1 Le microprocesseur ................................................................................................................................. 4
I.2.2 La mémoire ............................................................................................................................................... 5
I.2.3 Interface I/O ............................................................................................................................................ 6
I.3 Architecture de base d’un microprocesseur ..................................................................................... 6
I.3.1 Unité de traitement.................................................................................................................................. 6
I.3.2 Unité de commande ................................................................................................................................. 7
I.4 La famille de 80x86 ................................................................................................................................. 7
I.4.1 Le microprocesseur 8086 (1978) .......................................................................................................... 7
I.4.2 Le microprocesseur 8088 (1979) .......................................................................................................... 8
I.4.3 Les microprocesseurs 80186 & 80188 (1982) .................................................................................... 8
I.4.4 Le microprocesseur 80286 (1982) ........................................................................................................ 8
I.4.5 Le microprocesseur 80386 (1984) ........................................................................................................ 8
I.4.6 Le microprocesseur 80486 (1989) ........................................................................................................ 9
I.4.7 Le microprocesseur Pentium (1993) ................................................................................................... 9
Chapitre 2 : Le Microprocesseur Intel 8086......................................................................................................... 10
II.1 Description physique du 8086 ............................................................................................................. 10
II.2 Schéma fonctionnel du 8086................................................................................................................ 10
II.2.1 Connexions de base ................................................................................................................................ 13
II.3 Organisation interne du 8086 ............................................................................................................. 13
II.4 La segmentation de la mémoire ......................................................................................................... 15
Chapitre 3 : La programmation du microprocesseur 8086 .............................................................................. 16
III.1 Généralités .................................................................................................................................................. 16
III.2 Les modes d'adressage ......................................................................................................................... 16
III.2.1 Adressage registre ............................................................................................................................... 17
III.2.2 Adressage immédiat ............................................................................................................................ 17
III.2.3 Adressage direct ................................................................................................................................... 17
III.2.4 Adressage indirect par registre ........................................................................................................ 17
Un système informatique sert à exécuter des programmes. Il procure des résultats ou prend des
décisions en fonction des données introduites.
Données
Nouvelles
Programm SYSTEME
e INFORMATIQUE
Sortie des
résultats
En fait, un système informatique se compose au moins d'une unité centrale et de plusieurs
périphériques.
L'unité centrale, constituée dans sa configuration minimale, d'un microprocesseur, doit lire son
programme, recevoir des données et fournir des résultats.
D'ou la nécessité de communiquer avec des périphériques via des circuits d'Entrée / Sorties
(interfaces).
MEMOIRE
CENTRALE
Bus de communication
MICROPROCESSEU
R
INTERFACES
MEMOIRE MEMOIRE
CENTRALE CENTRALE
Bus de
Données
MICRO -
Bus
PROCESS
d'Adresses
EUR
Bus de
INTERFAC INTERFAC INTERFA
Contrôle
E E CE
Mémoire
Compteur
Ordinal
MEMOIRE
COMMANDE Registr
ET e
Unité de
SEQUENCEM
recherche
ENT Unité
instruct
d'exécution
Unité de
décodageAccumulateur
ions
Unité
Décod
d'exécution
MICOPROCESSEUR
eur
2. Il la décode, c'est à dire, qu'il traduit en commandes internes ce qu'elle lui dit de faire.
3. Il l'exécute.
Le fonctionnement du microprocesseur dans le cas le plus simple est le suivant:
1. Le microprocesseur recherche une instruction graçe a l'unité de recherche. Les instructions
sont rangées dans les cellules mémoires d'adresses croissantes. Il doit donc savoir en permanence, quelle
est l'adresse de la cellule à laquelle il doit accéder. Pour cela, il dispose d'un registre qui conserve le
nombre correspondant à cette adresse. C'est le compteur ordinal.
2. Le code de l'instruction qui vient d'être lue dans la mémoire est ramené dans le
microprocesseur. Il est donc décodé et le processeur sait maintenant ce qu'il doit faire.
3. Le microprocesseur exécute l'instruction.
Séquenc Décodage
eur
Exécution de l'instruction :
I.1 Introduction
Dans les années 70 les technologies des ordinateurs numériques et celles des circuits
intégrés sont fondues pour donner naissance au microprocesseur.
Le microprocesseur possède une architecture semblable à l’ordinateur en plus tous les deux
effectuent des calculs sous le contrôle d’un programme. La plupart des systèmes informatiques
d'aujourd'hui sont basés sur un principe de conception proposée par le Dr John Von Neumann
(1946)
I.2.1 Le microprocesseur
C’est le cœur du système. C’est lui qui a la charge des fonctions suivantes :
- Fournit les signaux de synchronisation et de commande à tous les éléments du système
- Prend en charge les instructions et les données dans la mémoire
- Transfère les données entre la mémoire et les dispositifs d’I/O et vice versa
- Décode les instructions
- Effectue les opérations arithmétiques et logiques commandées par les instructions
- Réagit aux signaux de commande produits par les entrées/sorties comme le signal RESET et
les INTERRUPTIONS
I.2.2 La mémoire
La mémoire a pour rôle de conserver des groupes de chiffres binaires (mots) qui sont soit
des instructions formant un programme, soit des données dont le programme a besoin.
Elle se décompose souvent en :
a/ une mémoire morte (ROM = Read Only Memory) chargée de stocker le programme. C’est une
mémoire à lecture seule.
• ROM : Read Only Memory. Mémoire à lecture seule, sans écriture. Son contenu est programmé
une fois pour toutes par le constructeur. Avantage : faible coût.
Inconvénient : nécessite une production en très grande quantité.
• PROM: Programmable Read Only Memory. ROM programmable une seule fois par l’utilisateur.
• EPROM : Erasable PROM, appelée aussi UVPROM. ROM programmable électriquement avec
un programmateur et effaçable par exposition à un rayonnement ultraviolet.
• EEPROM : Electrically Erasable PROM. ROM programmable et effaçable électriquement.
Les EEPROM contiennent des données qui peuvent être modifiées.
b/ une mémoire vive (RAM = Random Access Memory) chargée de stocker les données
intermédiaires ou les résultats de calculs. On peut lire ou écrire des données dedans, ces données
sont perdues à la mise hors tension.
• SRAM: Static Random Access Memory. Mémoire statique à accès aléatoire, à base de bascules à
semi-conducteurs à deux états (bascules RS).
• DRAM : Dynamic RAM. Basée sur la charge de condensateurs : condensateur chargé = 1,
condensateur déchargé = 0.
Remarque :
Les disques durs, disquettes, CDROM, etc… sont des périphériques de stockage et sont considérés
comme des mémoires secondaires.
On peut donc schématiser un circuit mémoire par la figure suivante où l’on peut distinguer :
Décodeur Séquenceur
Unité de commande
Figure I.3: Principales sections d'un microprocesseur
ALE (Address Latch Enable ): Ce signal est une impulsion active pendant T1, elle indique que
l’information qui circule dans bus A/D est une adresse.
Elle est fournie par le Cpu pour verrouiller les lignes d'adresse au cours des cycles T2, T3, T4.
RD : Read, signal de lecture d’une donnée.
WR : Write, signal d´écriture d’une donnée.
M/IO : Memory/Input-Output, indique si le CPU adresse la mémoire (M/IO = 1) ou les
entrées/sorties (M/IO = 0).
DEN : Data Enable, indique que des données sont en train de circuler sur le bus A/D (équivalente
de ALE pour les données).
DT/R : Data Transmit/Receive, indique le sens de transfert des données :
• DT/R = 1 : données émises par le microprocesseur (écriture) ;
• DT/R = 0 : données reçues par le microprocesseur (lecture).
1 1 aucun octet
Remarque :
Un système à microprocesseur très simple est composé des parties suivantes:
Remarque : la pile est une zone mémoire ou on peut sauvegarder le contenu des registres, les
adresses ou les données pour les récupérer après l'exécution d'un sous-programme ou l'exécution
d'un programme d'interruption.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
III.1 Généralités
Le programme est une suite d'instructions. Une instruction est un mot binaire décrivant
l'action que doit exécuter le microprocesseur,
Une instruction est définie par son code opératoire, qu’on écrit généralement en hexa, mais
pour une plus grande facilité on les désignera par leurs mnémoniques. Le mnémonique est une
abréviation en caractère latin.
La programmation en assembleur utilise un ensemble d’instructions appelé jeu
d’instructions. Chaque microprocesseur à son propre jeu d’instructions.
Pour les microprocesseurs classiques, le nombre d’instructions reconnues varie entre 75 et
150 (microprocesseurs CISC : Complex Instruction Set Computer). Il existe aussi des
microprocesseurs dont le nombre d’instructions est très réduit (microprocesseurs RISC : Reduced
Instruction Set Computer) : entre 10 et 30 instructions, permettant d’améliorer le temps
d’exécution des programmes.
Les instructions peuvent être classées en groupes :
• instructions de transfert de données ;
• instructions arithmétiques ;
• instructions logiques ;
• instructions de branchement ...
L’opération est réalisée entre les 2 opérandes et le résultat est toujours récupéré dans
l’opérande de gauche.
Il y a aussi des instructions qui agissent sur un seul opérande.
Les opérandes peuvent être des registres, des constantes ou le contenu de cases mémoire, on
appelle ça le mode d’adressage
Les modes d'adressage définissent comment identifier l'opérande de chaque instruction.
Un mode d'adressage spécifie comment calculer l'adresse de la mémoire d'un opérande en
utilisant les informations contenues dans les registres et / ou Les constantes contenues dans
l’instruction.
Il y a plusieurs modes d'adressage dans le 8086:
a/ PUSH
Le format général d'une instruction de PUSH est : PUSH opérande
- L'instruction PUSH stocke le contenu de l’opérande Op (16 bits) dans le sommet de Pile
- Décrémente SP de 2
b/ POP
Le format général d'une instruction POP est : POP opérande.
- L'instruction POP Dépile une valeur de 16 bits depuis le sommet de la Pile (STACK
SEGMENT) et la stocke dans les opérandes (16 bits).
- Incrémente SP de 2
III.5.2 Instruction OR
OU logique entre deux opérandes bit à bit : OR Destination, Source ;
Destination destination (OU) source.
La destination peut être : registre, mémoire.
La source peut être : registre, mémoire, immédiate.
Les FLAGs affectés : ZF ; SF ; PF
Shift Left
Shift Arithmetic
Shift Right
Shift Arithmetic
Remarque : Les décalages arithmétiques permettent de conserver le signe. Ils sont utilisés pour
effectuer des opérations arithmétiques comme des multiplications et des divisions par 2.
La forme générale des instructions de décalage est : XXX destination, N
Où: XXX est le mnémonique de décalage (i.e., SHL, SHR, SAL, SAR),
La destination peut être : registre, mémoire et l'opérande N peut être soit une constante
(immédiat) soit le registre CL :
Exemples: SHL AX, 1
SHL AX, CL
Rotate Through CF
Rotate Left
Rotate Through CF
Rotate
Remarque :
- Les termes supérieur et inférieur (above and below) pour les nombres non signés.
- Les termes plus grand et plus petit (greater than and less than) pour les nombres signés.
Remarque : Chacune des instructions existe en deux versions, entre deux octets, ou entre 2
words, le préfixe REP pour les instructions de transfert MOVS LODS STOS, Ce préfixe utilise
le registre CX comme un compteur de répétition.
Les préfixes REPE et REPZ : Répétition des instructions de comparaisons SCAS et CMPS
tant que ZF=1 et CX≠0.
Les préfixes REPNE et REPNZ : Répétition des instructions de comparaisons SCAS et
CMPS tant que ZF=0 et CX≠0.
Ces instructions sont utilisées sans opérandes. les registres utilisés sont : pour la source
DS:SI, et pour la destination ES:DI. A chaque exécution d’une instruction de traitement de
chaîne, les registres d’indexes sont incrémentés ou décrémentés selon le flag DF de registre
d’état.
* DF = 0 : SI et DI sont incrémentés, (l’instruction CLD mit (DF = 0))
* DF = 1 : SI et DI sont décrémentés. (l’ instruction STD mit (DF = 1))
SI et DI sont incrémentés de 1 ou de 2 selon que l'opération s'effectue sur un octet
(byte) ou sur un mot de 16 bits (word).
MOVSB : Copie Le contenu d’un octet de mémoire DS: [SI] dans un octet de mémoire
ES: [DI], puis auto inc/decrémente les registres SI et DI.
MOVSW : Copie Le contenu du mot de mémoire DS: [SI] dans le mot de mémoire ES:
[DI], puis auto inc/decrémente de 2 les registres SI et DI
LODSB : Copie l'octet source DS: [SI] dans AL puis inc/décr le registre SI.
LODSW : Copie le mot source DS: [SI] dans AX puis inc/décr de 2 le registre SI.
STOSB : Copie AL dans l’octet destination ES: [DI] et inc/décr le registre DI.
STOSW : Copie AX dans le mot destination ES: [DI] et inc/décr de 2 le registre DI.
CMPSB : Compare l'octet source ES : [DI] avec l'octet destination DS: [SI], positionne
les indicateurs puis inc/décrémente les registres SI et DI.
CMPSW : Compare le mot source ES : [DI] avec mot destination DS: [SI], positionne
les indicateurs puis inc/décrémente de 2 les registres SI et DI
Si plus de 10 composants sont attachés aux broches de bus, l'ensemble du système 8086 doit
être amplifié. Les broches démultiplexés (adresse bus A19-A0 et BHE) sont déjà amplifiées par les
verrous (latch). Donc, il faut amplifier le bus de données D15 - D0. Le bus de données est
bidirectionnel, nous devons utiliser des tampons (buffers) bidirectionnels :
Exemples de tampons de bus : circuits transmetteurs bidirectionnels 8286 ou 74245 :
Remarque : Les signaux de bus de contrôle (M/IO, RD et WR) les signaux de bus de
contrôle sont des signaux unidirectionnels. Par conséquent, nous avons besoin d'utiliser des
tampons unidirectionnels tels que le buffer 74LS244.
La figure suivante montre la conception de bus système de μp 8086
Décodage Adressage
Remarque : la mémoire et les ports I/O partage le même bus de données et d’adresse, c’est Le
signal M/IO qui permet de différencier l’adressage de la mémoire de l’adressage des ports E/S :
• pour un accès à la mémoire, M/ IO = 1;
• pour un accès aux ports d’E/S, M/IO = 0.
Les instructions utilisées pour R/W d’un port sont « IN / OUT ». Il existe deux types
d’accès, accès direct et un autre indirect. Les registres utilisés sont l’accumulateur « AL / AX » et le
registre de données « DX ». Les instructions directes d'E / S fournissent l'adresse de port (qui doit
être un nombre compris entre 0 et FFh).
Si l’adresse du port d’E/S est sur un octet:
Pour accéder à la plage complète des ports d'E/S de 0000H à FFFFH, les instructions
indirectes d'E / S doivent être utilisées.
Pour ces instructions, le registre DX doit être préchargé avec l'adresse du port.
• si l’adresse du port d’E/S est sur deux octets:
V.1 Définition
Une interface d'entrées/sorties est un circuit permettant au Cpu de communiquer avec
l'environnement extérieur (périphérique) : clavier, écran, imprimante, processus industriel etc...
Les interfaces d'E/S sont connectées au microprocesseur à travers les bus d'adresses de
données et de commandes.
Un circuit d’E/S possède des registres pour gérer les échanges avec les périphériques :
• Registre de configuration
• Registre de données
A chaque registre est assignée une adresse : le microprocesseur accède à un port d’E/S en
spécifiant l’adresse de l’un de ses registres.
Intel a développé plusieurs circuits intégré de contrôle de périphérique conçus pour soutenir
la famille de processeurs 80x86 tels que:
Le 8255A Programmable Peripheral Interface (PPI),
Le 8259 Programmable Interrupt Controller (PIC), Le
8253/54 Programmable Interval Timer (PIT),
Le 8237 Programmable DMA Controller.
V.3 Le 8279
Intel 8279 est un circuit intégré d'interface programmable clavier / l'écran :
Scans et encode jusqu'à un clavier de 64-clé.
Contrôle jusqu'à un affichage numérique de 16 chiffres.
La Section Clavier possède une mémoire tampon de 8 caractères FIFO intégrée.
L'affichage est commandé à partir d'une RAM interne 16x8 qui mémorise les informations
d'affichage codées.
Figure V.6: Interface du 8279 (Un clavier Hexa et afficheur 7 segments) avec le 8086.
• dans le protocole de transmission de données on a que deux états significatifs : 0 (ou low),
et 1 (ou high). Quand on ne transmet rien, la ligne est à l'état high (tension négative). Comme le
montre la figure V.7,
• Le bit de Start permettra au récepteur de savoir que des données vont être transmises;
• Les bits de données sont transmis l’un après l’autre en commençant par le bit de poids
faible. Ils peuvent être au nombre de 5, 6, 7 ou 8.
• Le bit de parité est un bit supplémentaire dont la valeur dépend du nombre de bits de
données égaux à 1. Il est utilisé pour la détection d’erreurs de transmission ;
• Les bits de stop (1, 1.5 ou 2) marquent la fin de la transmission du caractère.
L'UART est conçue pour gérer les signaux en provenance d'un modem. Aussi est-il
nécessaire de donner quelles broches sont utilisées par
l'ETCD (Equipement Terminal de Communication de
Données).
signal Signification
TxD Transmit Data
RxD Receive Data
RTS Request To Send
CTS Clear To Send
DTR Data Terminal Ready
DSR Data Set Ready
DCD Data Carrier Detect
RI Ring Indicator
Les 2 signaux TxD et RxD servent à transmettre les données. Les autres signaux sont des
signaux de contrôle de l’échange de données.
Le 8259A peut gérer jusqu’à 8 demandes d’interruptions matérielles. Il est programmé par le
logiciel du système comme un périphérique d'E / S.
Une sélection de modes de priorité est disponible pour le programmeur de sorte que la
manière dont les demandes sont traitées par le 8259A peut être configurée pour correspondre à ses
besoins du système.
Les modes de priorité peuvent être modifiés ou reconfigurés dynamiquement à tout moment
pendant le programme principal. Cela signifie que la structure d'interruption complète peut être
définie selon les besoins.
Il y a trois registres de comptage de 16 bits, dont chacun peut être programmé comme un
timer ou un compteur d'événements. Plus un registre de commande qui peut ne peut-être qu’écrit.
L’accès aux registres du 8254 s’effectue de la façon suivante :
Tableau VI.1: Description des opérations de base
CS RD WR A1 A0 fonction
0 1 0 0 0 Chargement compteur 0
0 1 0 0 1 Chargement compteur 1
0 1 0 1 0 Chargement compteur 2
0 1 0 1 1 Ecriture mot de mode
0 0 1 0 0 Lecture compteur 0
0 0 1 0 1 Lecture compteur 1
0 0 1 1 0 Lecture compteur 2
0 0 1 1 1 Etat de haute impédance
1 X X X X
0 1 1 X X
La programmation du 8254 se fait par l’envoi d’un mot de commande dans le registre de
commande CR. Les bits 6 et 7 de ce mot de commande permettent de l’affecter à l’un des trois
compteurs. Le format du mot de commande est le suivant :
On remarque que chaque compteur peut être utilisé selon l’un des 6 modes possibles :
Mode 0 :
Il Permet au 8254 d’être utilisé comme un compteur ou temporisateur. Dans ce mode, la
sortie est au niveau logique 0 Lorsque le décomptage atteint 0, la sortie passe au niveau 1. On
notera que l'entrée GATE doit être un 1 logique pour permettre au compteur de compter. Si G
devient 0 au milieu du comptage, le compteur s’arrête jusqu'à ce que G redevient 1.
Mode 1 :
Le 8254 à la fonction comme un monostable redéclenchable. Un front montant sur la
gâchette GATE déclenche le décompte au top d’horloge qui suit. Alors la sortie passe à 0 et s’y
maintient jusqu’à ce que le décompte arrive à 0. Chaque front montant sur GATE relance le
processus à partir du compte initial (si celui- ci n’a pas été modifié).
Mode 2 :
C’est le mode diviseur par n il permet au 8254 de générer une série d'impulsions continues.
La séparation entre les impulsions est déterminée par le comptage. Par exemple, pour un compte de
10, la sortie est un état logique 1 pendant neuf périodes d'horloge et 0 pour une période d'horloge.
Ce cycle est répété jusqu'à ce que le compteur est programmé avec un nouveau comptage ou jusqu'à
ce que l’entrée G est placée à un niveau logique 0. L'entrée G doit être un 1 logique pour ce mode
pour générer une série continue d'impulsions.
Mode 3:
Ce mode est similaire au mode 2 sauf que OUT passe au niveau bas lorsque la moitié du
compte initial est atteinte, soit N/2, et reste dans cet état jusqu’à ce que le compte arrive à 0 et le
cycle recommence. Comme pour le mode 2, un niveau 1 sur GATE valide le décompte et un niveau
0 l’inhibe alors qu’un front montant le réinitialise. De ce fait, une valeur impaire amène (N+l)/2
avec sorties au niveau haut et (N-1)/2 au niveau bas.
Mode 4:
Ce mode est similaire au mode 0 sauf que OUT est au niveau haut pendant le décomptage et
produit une seule impulsion négative lorsque le compte devient nul.
Mode 5:
Ce mode est similaire au mode 4. Cependant il est démarré par une impulsion de
déclenchement sur la broche G au lieu par le programme. Ce mode est également similaire au mode
1, car il est redéclenchable.
Figure VI.4 : Les six modes de fonctionnement pour le 8254. L'entrée de G = 0 arrête le
compteur en mode 2, 3, et 4.
VI.5 Le 8237
Intel a conçu le DMAC 8237 pour être associé au microprocesseur 8080. Il est également
utilisé pour les microprocesseurs 8085 et 8086/88. Le 8237 est en fait un microprocesseur à usage
spécial dont le travail est le transfert de données à grande vitesse entre la mémoire et les E / S. la
Figure suivante montre le brochage et le diagramme du contrôleur de DMA programmable 8237.
Le 8237 a quatre canaux pour transférer les données, c’est-à-dire qu’il peut être relié à
quatre périphériques. Bien entendu, à un instant donné, un seul périphérique peut utiliser le DMAC
pour transférer des données.
A chaque canal est associé deux signaux : DREQ et DACK. Il y a un seul signal HOLD et
un seul signal HLDA, ce qui signifie que les quatre canaux utilisent les mêmes bus système, mais le
DMAC décide quel périphérique doit prendre le contrôle à partir d’un registre des priorités qui peut
être programmé.
Figure VI.5 : (a) Schéma fonctionnel et (b) brochage du contrôleur DMA programmable 8237.
On ne va pas aller plus loin dans l’étude du contrôleur DMA programmable 8237 car il est
rarement utilisé d’une façon individuelle.
Bibliographie
[1] Brey, Barry B. The Intel microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486,
Pentium, Pentium Pro processor, Pentium II, Pentium III, Pentium 4, and Core2 with 64-
bit extensions: architecture, programming, and interfacing ;8th ed; Pearson Prentice Hall ;
2009.
[2] D.a.godse A.p.godse. Microprocessors and Interfacing; first edition ; technical publications
pune ; 2009 .
eme
[3] M.aumiaux . Les systèmes à microprocesseurs ; 2 edition ; masson ; 1982.
[4] Intel The 8086 Family; Users Manual ; 1979.
[5] Dr J.Y. Haggége. MICROPROCESSEUR ; (cours Institut Supérieur des études
Technologiques de Radés) ; 2003
[6] A. Oumnad. MICROPROCESSEURS DE LA FAMILLE 8086.
[7] www.chipdocs.com
[8] www.datasheetcatalog.com