Professional Documents
Culture Documents
E-mail :lassaad.tayari@isetn.rnu.tn
SUPPORT DE COURS
MICROPROCESSEURS
Elabor par :
TAYARI LASSAAD
TECHNOLOGUE A ISET GABES
E-mail :lassaad.tayari@isetn.rnu.tn
Cours de microprocesseurs ISET GABES
Chapitre 1
Plan
I/ INTRODUCTION AUX SYSTEME INFORMATIQUE
II/ LES BUS
III/PRINCIPE DE FONCTIONNEMENT D'UN MICROPROCESSEUR
Chapitre 1
INTRODUCTION GENERALE
AUX MICROPROCESSEURS
Donnes Nouvelles
MEMOIRE CENTRALE
Bus de communication
MICROPROCESSEUR
INTERFACES
RAM ROM
Bus de Donnes
MEMOIRE
Unit de recherche
Unit de dcodage
Unit d'excution
MICOPROCESSEUR
Mmoire
Compteur Ordinal
Registre instructions
COMMANDE Dcodeur
ET SEQUENCEMENT
Unit d'excution
Accumulateur
- Registre instructions
Circuits de Dcodeur
commande et de d'instructions
squencement
UAL Registres
T1 T2 T3
1 Excution
Recherche Dcodage
de de
Horloge 2 de
Squenceur Dcodage l'instructio
l'instructio l'instructio
n n
n
1. Les registres
a) L'accumulateur: Utilis gnralement pour ranger l'un des oprandes devant tre manipul par
l'ALU.
b) Le compteur de programme: C'est un registre qui contient l'adresse de l'instruction suivante du
programme.
c) Registre d'instruction et dcodeur: c'est un registre qui contient l'instruction suivante qui sera
dcod pour qu'elle soit excute par l'unit d'excution.
d) Registre d'adresse: Un CPU peut utiliser un registre ou une paire de registres pour ranger
l'adresse d'un emplacement mmoire.
2. L'unit arithmtique et logique
C'est la partie du CPU qui assure les oprations de calcul arithmtique et logique (*,+,-
,/,ET,OU,NON) et contient un registre flags qui indique le rsultat de certaines conditions
sous forme de drapeaux (FLAGS). Exemple: Carry,Zro, Sign et Parity.
3. La circuiterie de contrle
Cette partie du microprocesseur commande la squence adquate d'vnements requis
pour toute tache de traitement. Donc c'est cette partie qui contrle l'excution de tout
traitement (programme).
Plan
I/ ARCHITECTURE DU 8086
II/ LE FONCTIONNEMENT INTERNE DU 8086
III/ LE FONCTIONNEMENT DU 8086 AVEC LEXTERIEUR
I/ ARCHITECTURE DU 8086
15
DIRECTION FLAG PARITY FLAG
TRAP FLAG
CF: si carry ou borrow produit alors CF =1 ZERO FLAG
SIGN FLAG si le rsultat contient un nombre paire de 1 (PF=1)
PF:vrifie
AF: CF mais par quart
ZF: si le rsultat d'une opration est 0, ZF=1
SF: si le rsultat est ngatif, SF=1 sinon 0
TF: excution pas pas
IF: permet la reconnaissance des demandes d'interruption
DF: Dcrmentation ou incrmentation automatique des adresses de base (Traitement des
chanes de caractres).
OF: dpassement
ADDITIONNER
0 0 0 0 0 0 0 0 0 0 00 0 0 1 01 0 1 10
0 1 0 0 0 0 11 0 0 1 0 00 0 1 0 0 0 0
ADDITIONNER
SP+SS BP+SS
code
Segment
donne
Le 8086 est un processeur 16 bits. Son bus d'adresse est sur 20 bits.
Le processeur est prsent en un botier de 40 broches, aliment par une sourse unique de
5V.
Deux modes de fonctionnement sont possibles, slectionns par la broche 33.
0 : mode maximum
BROCHE 33
1 : mode minimum
Mode minimum : Ce mode permet de diminuer le nombre de circuits extrieurs pour les
systmes processeur unique. Le processeur prend en charge la gestion des bus.
Mode maximum : Ce mode tends l'architecture au configuration a multiprocesseurs et
autorise ainsi l'extension du jeu d'instruction du coprocesseur de calcul. Un contrleur de bus
est donc ncessaire.
Les pins du 8086 se divisent par leur fonctions en plusieurs catgories: Adresse, donnes,
CONTOLE/STATUS et alimentation/ masse.
a- adresse et donne:
AD0-AD15 : multiplexs dans le temps pour servir vhiculer l'adresse puis la donne.
AD0-AD15 :Ces lignes sont soit en entre soit en sortie soit en 3me tat (haute impdance).
A8-A15: octet d'adresse suivante non multiplexe pour le 8088.
RD indique que le processeur est en train de lire a partir de la mmoire ou les E/S.
WR indique que le processeur est en train d'crire dans la mmoire ou les E/S.
Chapitre 3
PROGRAMMATION ASSEMBLEUR
DU 8086/88
PLAN
I/- LE PROGRAMME SOURCE
II/- CONSTITUTION DUN PROGRAMME SOURCE
a- Les Instructions
b- Les Directives
c- Les Oprateurs
III/- LES MODE DADRESSAGE DU 8086/88
1- Mode dadressage immdiat.
2- Mode dadressage registre
3- Mode dadressage direct
4- Mode dadressage registre indirect
5- Mode dadressage relatif a une base
6- Mode dadressage direct index
7- Mode dadressage index
8- Rsum
Chapitre 3
PROGRAMMATION ASSEMBLEUR
DU 8086/88
I/ LE PROGRAMME SOURCE
Pour aboutir un programme correct excutable par le processeur 8086, il est
ncessaire de suivre les tapes suivantes :
1. Traduire le cahier des charges en un organigramme qui dcrit le fonctionnement du
programme.
2. Ecrire les instructions du programme sur papier.
3. A laide dun diteur de texte, crire le programme dans un fichier ayant lextension
.as m .
4. Compiler et assembler le programme source a laide dun compilateur ( masm.exe ou
tasm.exe). Le compilateur va dtecter sil y a des erreurs dans votre progra mme. Si le
programme est syntaxiquement correct, le compilateur gnrera un fichier ayant le mme nom
que le fichier source mais avec lextension .obj .
5. Faire ldition de lien du programme laide dun diteur de lien (link.exe ou tlink.exe), on
obtient ainsi un programme excutable qui a lextension .exe .
6. Excuter le programme.
7. Si les rsultats sont errons, alors faire le debuggage du programme a laide dun dbogueur
comme le debug.exe pour localiser lerreur, puis faire la correction.
Exemples :
I EQU 2.54 ; valeur constante
G EQU INCH ; un autre nom symbolique (identificateur)
AG EQU I*2-1 ;une expression
- DB :
[nom] DB expression [ ;commentaire]
DB rserve des mots a un octet.
Exemples :
Nb_max DB 255 ; dclaration dune variable initialise a 255
Nb_min1 DB -128
Nb_min2 DB 127
Tab_oct DB 3 DUP(0), -5, -100, 2 DUP(30), ? ; cette table rserve des cases doctets
initialises avec 0,0,0,-5,-100,30,30,30, et une case non initialise.
Message DB Bonjours a tous$
- DW :
[nom] DW expression [ ;commentaire]
DW rserve des mots a deux octets.
- DD :
[nom] DD expression [ ;commentaire]
DD rserve des mots a quatre octets.
- assume : Cette directive indique lassembleur que tel segment appartient tel registre.
Assume reg_seg :nom_seg [ ;commentaire ]
Exemple:
CODE segment
Assume CS:CODE, DS :DATA
.
.
.
CODE ENDS
Chapitre 4
Chapitre 4
TAYARI Lassaad Page 27 chapitre 4
Cours de microprocesseurs ISET GABES
b) Dcalage
SAL/SHL destination, compte
SAR destination, compte
SHR destination, compte
c) Rotation
ROL destination, compte
ROR destination, compte
RCL destination, compte
RCR destination, compte
d) Scan
SCAS chane_source
SCASB
SCASW
e) Load et Store
LODS chane_source
LODSB
LODSW
STOS chane_destination
STOSB
STOSW
Chapitre 5
Chapitre 5
Avantages :
DMA externe / processeur
transfert de donnes sans passer par le processeur
DMA prioritaire sur le bus
Chapitre 6
LES BUS
PLAN
I. GENERALITES
II. MODE DE FONCTIONNEMENT
III. CARACTERISTIQUES DUN BUS
IV. MODE DE TRANSMISSION DE LINFORMATION
V. EXEMPLES DE BUS
Chapitre 6
LES BUS
I. GENERALITES
Le bus est physiquement constitu par un ensemble de fils conducteurs monts en parallle.
Cest lquivalent dun cble dun point de vue logique. Le bus est un chemin partag qui
permet lensemble des units du micro ordinateur de communiquer entre elles.
Cest est un moyen de transmission des informations ou des signaux groups par fonction.
Un bus est utilis alors comme :
- Bus de donnes : cest un bus bidirectionnel. Il transmet les donnes
changeaient par les diffrents composants de lordinateur.
Gnralement ce type de bus comprend autant de fils quil y a de bits dans un
mot mmoire afin de lire ou dcrire un mot mmoire en un seul accs
- Bus dadresse : cest un bus unidirectionnel, il sert slectionner la source
pour la destination. Il indique la mmoire et aux autres priphriques
lemplacement avec lequel il veut communiquer. Le nombre de fils de ce bus
dpend de la taille de lespace adressable.
- Bus de commande : il rgle les transferts de donnes et assure la synchronisation
des priphriques avec le micro processeur. Il transporte des informations dtat
et des commandes dirigs vers la CPU ou en provenance de celle ci. Cest un
bus bidirectionnel.
Mmoire centrale
BUS
MICROPROCESSEUR
1. LES B US SYNCHRONES
Les bus synchrones disposent dune ligne spcifique dhorloge : toute opration sur le bus
synchrone est effectue en un nombre entier de priodes dhorloge.
La priode de lhorloge du bus correspond gnralement au cycle du bus.
Ils prsentent toutes fois quelques limitations notamment, le fait que toute opration
corresponde a un nombre entier de cycle de bus nest pas ncessairement optimum vis vis
des performances
1. BUS PARALLELE :
La solution la plus simple que lon puisse envisager, pour faire circuler un
certain nombre de bits la fois ( 8, 16, 32 ou 64 bits), consiste :
Utiliser autant de fils quil y a de bits
Un tel mode de transmission est dit parallle, mais nest utilisable que pour des
transmissions courte distance, car coteux et peu fiable sur des distances
importantes.
010101
11
2. BUS SERIE :
Pour des transmissions plus grande distance, on utilisera alors une seule voie
o les bits qui constituent les caractres sont transmis les uns aprs les autres :
cest la transmission srie.
Chaque bit est envoy tour de rle.
Principe de base :
Appliquer une tension +V pendant une intervalle pour reprsenter un bit 1 et une
tension nulle pour reprsenter un bit 0
Ct rcepteur, on doit alors observer les valeurs de la tension aux instants
convenables.
Une synchronisation est ncessaire, entre metteur et rcepteur pour que ce
dernier fasse ses observations aux instants corrects.
01011101
Dans tous les premiers systmes, les informations circulaient sur un ensemble de
fils uniques mettant le processeur en relation avec la mmoire ou les entres-
sorties
Ainsi, un programme faisant de nombreux appels la mmoire monopolisait ce
bus unique au dtriment des autres demandeurs.
Un premier palliatif a consist prvoir pour le processeur des accs directs la
mmoire au travers dun canal DMA (Direct Memory Access).
Cette technique est toujours en vigueur.
On a ensuite rflchi une sparation des bus selon leur fonction de manire
obtenir des bus spcialiss.
On peut ainsi distinguer entre bus processeur, bus local, bus global et bus
dentres-sorties :
Le bus, comme tous les autres composants a galement suivi une volution
historique, passant ainsi du bus ISA PC AT aux bus EISA, VESA, PCI, USB
V. EXEMPLES DE B US :
1. LE BUS ISA OU PC-AT :
Le bus ISA (Industry Standard Architecture) reste lun des standards les plus
rpandus en matire de bus.
Il est apparu en 1984 avec le micro-ordinateur IBM PC-AT do son surnom de
bus AT ou AT-bus.
Le processeur est alors un Intel 80286 fonctionnant 8 MHz, et le bus est
synchronis avec le processeur les informations circulent la mme vitesse
sur le bus extrieur au processeur et dans le processeur lui-mme.
Avec le bus ISA, les cartes dextension doivent tre configures matriellement
ce qui se fait gnralement en positionnant des micro-switchs ou en plaant des
cavaliers.
Ce bus, dune largeur de 16 bits, autorise des taux de transfert pouvant atteindre
jusqu 8 Mo/s
Mmoire
Processeur et Centrale
Mmoire cache
Bus processeur
Contrleur
Contrleur
ISA
Les processeurs qui ont succd au processeur 80286 sont des processeurs de 32
bits
Ce qui pose videmment problme ( caus par la rapidit) et oblige les
constructeurs concevoir un bus dextension pouvant fonctionner des vitesses
diffrentes de celle du processeur.
Dveloppement concurrente du bus MCA et du bus EISA
Il se visualise sous forme de connecteurs noirs sur la carte mre.
2. LE BUS MCA :
Le bus MCA (Micro Channel Architecture) dvelopp en 1987 par IBM pour
ses nouveaux PS/2 a marqu une relle volution.
Bus 32 bits, asynchrone, fonctionnant 10MHz : dit bus intelligent ou bus
master
MCA est en effet capable dexploiter des cartes munies de leur propre
processeur et grant leurs entres-sorties sans que nintervienne le processeur de
la carte mre, ainsi libr pour dautres tches.
Larchitecture MCA tant indpendante du processeur, il peut tre utilis avec
des processeurs Intel sur les PS/2 ou des processeurs RISC sur les RS-6000.
MCA offre un taux de transfert de 20 50 Mo/s et supporte quinze contrleurs
masteriss
Chaque carte dextension est configurable par logiciel
Toutefois MCA ne reconnat pas les cartes du format ISA et son architecture
complexe le rend coteux fabriquer.
Il reste donc essentiellement utilis par IBM
3. LE BUS EISA :
Le bus EISA (Extended Industry Standard Architecture) est apparu en 1988
pour concurrencer MCA dvelopp par IBM.
Un bus de 32 bits prvu pour maintenir une certaine compatibilit avec le bus
ISA, ce qui loblige continuer fonctionner 8 MHz comme le bus ISA
Son taux de transfert est de 33 Mo/s
Il reprend certaines caractristiques du bus MCA telles que la configuration
logicielle des cartes dextension et la notion des bus mastering.
Les contrleurs sont diffrents de ceux utiliss avec un bus ISA et plus coteux
4. LE BUS VESA :
La norme VESA (Video Electronics Standard Association) Local Bus
(VLB),apparue en 1993, dfinit dans sa version 1.0 les caractristiques dun bus
local 32 bits, thoriquement extensible 64 bits et fonctionnant en synchrone
avec le microprocesseur
VLB autorise lutilisation du DMA (Direct Memory Access) ainsi que le bus
mastering.
Son architecture est trs simple car il sagit ni plus ni moins dune extension du
bus du processeur.
Le bus VESA, de conception peu coteuse, fonctionne donc en synchrone avec
le processeur- ainsi un processeur 33MHz fonctionnera avec un bus VESA
33MHz.
Ce bus permet de piloter trois connecteurs
Le taux de transfert potentiel est alors de 130 Mo/s. Avec un bus 40 MHz on
atteindrait un taux de transfert de 148 Mo/s.
Mmoire
Centrale
Processeur et
Mmoire cache
Bus processeur
Contrleur
5. LE BUS PCI :
Le bus PCI (Peripheral Component Interconnect) a t dvelopp par Intel en
1993, concurremment la norme VESA.
Il offre, dans sa version 1.0 un bus de 32 bits fonctionnant 33 MHz ce qui
permet datteindre un taux de transfert de 132 Mo/s comme avec un bus VESA
PCI prsente toutefois le gros avantage dtre totalement indpendant du
processeur, ce qui nest pas le cas du VESA Local Bus.
En effet, PCI dispose de sa propre mmoire tampon (buffer)
Cest pourquoi on emploie galement le terme de pont PCI-mmoire
charge de faire de lien entre le bus du processeur et les connecteurs
dextension
Mmoire
Processeur Centrale
Mmoire cache
Bus processeur
Contrleur
Contrleur Contrleur
PCI ISA
Contrleur Mmoire
Graphique
Carte Contrleur
Entes/Sorties
Modem
PCI est une architecture de bus qui peut tre combine avec une autre
architecture de bus de type ISA ou EISA
6. LE BUS SCSI :
Linterface SCSI (Small Computer System Interface) est un bus supportant divers
priphriques, de plus en plus adopte par les constructeurs.
Le bus SCSI est un bus multimatre : signifie quil dispose de son propre microprocessur
servant le grer
Or SCSI est prvu pour relier des composants supplmentaires aux traditionnels disque durs
ou lectures CD-ROM, tels que des scanners, imprimantes qui ne sont pas forcment
porte immdiate de la machine.
Le bus LVD est galement dit bus parallle diffrentiel car il fonctionne en
mode diffrentiel en utilisant un fil pour le signal ngatif et un autre fil pour le
signal positif ce qui diminue leffet des parasites lectromagntiques.
Taux de transfert
Frquence 8 bits 16 bits Distance Priph
Bus (mode wide) max supports
7. LE BUS USB :
Le bus USB (Universal Serial Bus),apparu en 1995 ,est un bus srie rcent et
volu qui se veut le successeur des traditionnels bus sries et parallles.
Il permet dexploiter 127 priphriques souris, clavier, imprimante, scanner
chans sur un canal.
Chapitre 7
PLAN
I- Introduction
II- Echanges par inte rruptions
III- Principe de fonctionnement
IV- les sous-programmes d'interruption
V- La notion de la priorit
VI- Contrleur programmable d'interruptions PIC
VII- Masquage des interruptions
IIX- Types d'inte rruptions
IX- Programmation des inte rruptions
I- INTRODUCTION
Une interruption est fondamentalement un vnement externe qui survient un moment
imprvu, cela alors que le microprocesseur vaque normalement sa tche. Quelqu'un ou
quelque chose rclame son attention immdiate et le prie de bien vouloir interrompre un
instant son travail.
C'est, par exemple, l'utilisateur qui frappe une nouvelle commande sur son clavier. Ou un
incendie qui vient de se dclarer et dont il faut s'occuper. Le microprocesseur s'occupe alors
de la cause de cette interruption, fait ce qu'il y a faire. Puis, le traitement de l'interruption
termin, il revient sa tche primitive qu'il s'tait vu contraint d'abandonner pour la
poursuivre comme si de rien n'tait.
Les interruptions constituent l'un des trois modes d'changes appliqus par le processeur, les
deux autres tant les changes programms et l'accs direct en mmoire, ou DMA.
Demande
d'interruption
Interruption
Micro- Priphriq
autorise Circui
processe t ue
ur Bu
s d'E/S
Deux lignes supplmentaires servent grer les interruptions: une ligne de demande
d'interruption et, en rponse, un ligne d'accord d'interruption.
La procdure est la suivante :
1. Un priphrique alerte son circuit d'interface (d'entres-sorties, not E/S) qu'il veut
transmettre une information au processeur. (8259A)
2. Le circuit d'E/S envoie une demande d'interruption au processeur, grce une ligne spciale
qu'il porte l'tat actif.
3. Le processeur termine l'instruction qu'il est en train d'excuter. Il range en mmoire pile
le contenu de tous ses registres relatifs au programme en cours d'excution (compteur ordinal,
accumulateur, index, indicateurs d'tats, autres registres, etc.).
4. Le microprocesseur retourne un accus de rception au circuit d'interface pour l'informer qu'il
est prt. Pour cela, il porte la ligne spciale Interruption autorise, ou Interrupt Acknowledge,
l'tat actif.
5. Il passe la squence de traitement de l'interruptio n en appelant le programme spcifique
ncessaire. Ce programme dpend de la source de l'interruption; c'est le programme de gestion
du clavier pour une frappe au clavier, de communication si c'est le modem qui a demand
l'interruption, etc.
6. Il excute tout ce qu'implique l'interruption.
7. Cela termin, il peut enfin reprendre l'excution du programme primitif interrompu. Les
lignes spciales d'interruption ont retrouv leur tat inactif.
8. Il rappelle donc tout ce qu'il avait sauvegard dans la pile de sauvegarde .Celle-ci recharge
tous les registres et le processeur retrouve l'environnement quil avait abandonn exactement
au point o il l'avait laiss.
9. Le traitement de l'interruption est termin.
De cette squence, on constate ainsi que traiter une interruption, c'est tout simplement passer
pendant un petit moment un autre programme, ce qui peut s'illustrer par le dessin suivant :
Le programme Demande
principal qui va tre dinterruption Reprise
interrompu
Traitement des du
Fin de linterruption et
interruptions
retour au programme
Le temps program principal
Par convention, on appelle :
Programme principal, le programme se trouvant en cours d'excution lors de la demande
d'interruption surgit.
me
Sous-programme d'interruption ( ou routine dinterruption), le programme qui doit tre
mis en uvre sa place pour traiter l'interruption.
principal
EOI, pour End Of Interruption, fin d'interruption, une instruction aussi appele Retour
d'interruption, qui doit obligatoirement se trouver la fin du programme traitement de
l'interruption. Elle signifie au processeur que c'est fini et qu'il peut poursuivre lexcution du
programme principal qui avait t interrompu.
Mode
d'adressage indirect par m moire des sous-programmes d'interruption.
Ce mode de calcul est typique des PC.
V- La notion de la priorit
IL est accord aux interruptions un degr de priorit qui fait que l'interruption la plus
prioritaire passe avant les autres, mises en attente.
Supposons qu'une premire interruption soit prise en compte par le microprocesseur. Alors
qu'elle est en cours de traitement, une seconde demande d'interruption se manifeste. Deux cas
sont possibles :
1. La seconde interruption est moins prioritaire. Elle attendra que la premire se termine
pour tre prise en compte.
2. La seconde interruption est plus prioritaire. Dans ce cas, elle interrompt son tour le
traitement de la premire interruption, tout comme celle-ci avait interrompu le programme
principal. Cet embotage suppose que:
Le microprocesseur sauvegarde ses registres dont le contenu, cette fois, dpend du traitement
de la premire interruption.
Cette sauvegarde s'ajoute, dans la pile, la prcdente, celle du programme principal.
Le microprocesseur traite la seconde interruption plus prioritaire.
Lorsque ce traitement est termin, il rcupre le contenu des registres de la premire
interruption et revient au traitement de cette premire interruption.
Quand le traitement de la premire interruption est, son tour, termin, il rcupre le contenu
des registres du programme principal et revient au pro gramme principal.
positionnement de ces bits d'tat se fait par logiciel, via une commande insre au bon endroit
dans un programme. La squence de principe du programme est ainsi la suivante :
1. Positionnement des indicateurs de masquage des interruptio ns pour les interdire.
2. Excution d'une squence critique du programme.
3. Dmasquage des interruptions qui peuvent de nouveau librement intervenir.
Une autre mthode de masquage consiste verrouiller le codeur de priorits ou le circuit de
gestion des interruptions s'il a t prvu pour cette fonction.
code segment
assume cs:code,ds:data
org 100h
debut:mov ah,35h
mov al,vectint
int 21h
push es
push bx ; sauvegarde de l'ancien vecteur d'interruption
mov ax,code
mov ds,ax
lea d x,routine
mov ah,25h
mov al,vectint
int 21h ;Chargement du nouveau vecteur d'interruption
mov cl,30h
mov ch,0
sti
boucle: cmp cl,39h ;initialisation et criture du programme principal
jle boucle
;rechargement de l'ancien vecteur d'interruption pour remettre le systme dans sont tat initial
pop dx
pop ds
mov ah,25h
mov al,vectint
int 21h
; routine d'interruption
routine proc far
cli
push ds
push bx
push ax
mov ah,20h
mov d x,0020h
out d x,al
mov ah,02h
mov d l,cl
int 21h
inc cl
sortir: pop ax
pop b x
pop ds
sti
iret
routine endp
code ends
end debut