You are on page 1of 60

Anne Universitaire 2013-2014

Ministres de lenseignement suprieur


Institut Suprieur des Etudes Technologiques de Gabs

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

INTRODUCTION GENERALE AUX


MICROPROCESSEURS
Objectifs:
Rappeler l'tudiant l'architecture de base d'un systme informatique.
Introduire le principe de fonctionnement d'un microprocesseur.
Pr requis:
Informatique gnrale
Architecture des ordinateurs
Les systmes logiques & logique programm

Plan
I/ INTRODUCTION AUX SYSTEME INFORMATIQUE
II/ LES BUS
III/PRINCIPE DE FONCTIONNEMENT D'UN MICROPROCESSEUR

TAYARI Lassaad Page 2 chapitre 1


Cours de microprocesseurs ISET GABES

Chapitre 1

INTRODUCTION GENERALE
AUX MICROPROCESSEURS

I/ INTRODUCTION AUX SYSTEMES INFORMATIQUE


Un systme informatique sert excuter des programmes. Il procure des rsultats ou
prend des dcisions en fonction des donnes introduites.

Donnes Nouvelles

Programme SYSTEME INFORMATIQUE

Sortie des rsultats

En fait, un systme informatique se compose au moins d'une unit centrale et de


plusieurs priphriques.
L'unit centrale, constitue dans sa configuration minimale, d'un microprocesseur, doit lire
son programme, recevoir des donnes et fournir des rsultats.
D'ou la ncessit de communiquer avec des priphriques via des circuits d'Entre / Sorties
(interfaces).

TAYARI Lassaad Page 3 chapitre 1


Cours de microprocesseurs ISET GABES

On a donc la synoptique suivante:

MEMOIRE CENTRALE

Bus de communication
MICROPROCESSEUR

INTERFACES

II/LES BUS vers les priphriques


Le bus de communication est constitu ventuellement de trois bus, qui sont:
1. Le bus de donnes: permet le transport des donnes ou les instructions du programme
2. Le bus d'adresses: permet dacheminer les adresses des cases mmoires ou des ports d'E/S.
3. Le bus de commande: permet de transmettre les ordres dans tout les sens.
Exemple: - Lecture de la case mmoire adress par le bus d'adresse.
- Ecriture dans la case mmoire adress par le bus d'adresse.
D'ou le synoptique suivant:

MEMOIRE CENTRALE MEMOIRE CENTRALE

RAM ROM

Bus de Donnes

MICRO - Bus d'Adresses

PROCESSEUR Bus de Contrle

INTERFACE INTERFACE INTERFACE

CLAVIER ECRAN DISQUE

TAYARI Lassaad Page 4 chapitre 1


Cours de microprocesseurs ISET GABES

III/ PRINCIPE DE FONCTIONNEMENT DU MICROPROCESSEUR


Un programme est compos d'instructions rangs aux adresses croissantes de la mmoire.
Le microprocesseur doit accomplir les tches suivantes:
1. Il doit appeler une instruction qu'il lit en mmoire.
2. Il la dcode, c'est dire, qu'il traduit en commandes internes ce qu'elle lui dit de faire.
3. Il l'excute.

MEMOIRE

Unit de recherche

Unit de dcodage

Unit d'excution

MICOPROCESSEUR

Le fonctionnement du microprocesseur dans le cas le plus simple est le suivant:


1. Le microprocesseur recherche une instruction grae a l'unit de recherche. Les instructions
sont ranges dans les cellules mmoires d'adresses croissantes. Il doit donc savoir en
permanence, quelle est l'adresse de la cellule laquelle il doit accder. 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 mmoire est ramen dans le
microprocesseur. Il est donc dcod et le processeur sait maintenant ce qu'il doit faire.
3. Le microprocesseur excute l'instruction.

TAYARI Lassaad Page 5 chapitre 1


Cours de microprocesseurs ISET GABES

Le droulement de l'excution d'un programme est pilot par des circuits de


commande de squencement qui met les diffrentes units en service tour de rle.

Mmoire

Compteur Ordinal

Registre instructions

COMMANDE Dcodeur

ET SEQUENCEMENT
Unit d'excution

Accumulateur

Unit arithmtique Registres


et logique
- Accumulateur
UAL
- Compteur ordinal

- Registre instructions
Circuits de Dcodeur
commande et de d'instructions
squencement

Les circuits de commande de squencement mettent chacune des sections du


microprocesseur en service tour de rle. Ils sont eux mmes pilots par une horloge quartz.
On a donc:

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

Les battements de l'horloge orchestrent l'excution des instructions


..............odeur
1 priode horloge = 1 micro cycle

TAYARI Lassaad Page 6 chapitre 1


Cours de microprocesseurs ISET GABES

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).

TAYARI Lassaad Page 7 chapitre 1


Cours de microprocesseurs ISET GABES
Chapitre 2

LES MICROPROCESSEURS 16 BITS


(le 8086/88 dIntel)
Objectifs:
Etudier larchitecture et le fonctionnement interne dun processeur 16 bits (le
8086).
Etudier le fonctionnement du 8086 avec lextrieur.
Pr requis:
Informatiques gnrale
Architecture des ordinateurs
Les systmes logiques

Plan
I/ ARCHITECTURE DU 8086
II/ LE FONCTIONNEMENT INTERNE DU 8086
III/ LE FONCTIONNEMENT DU 8086 AVEC LEXTERIEUR

I/ ARCHITECTURE DU 8086

TAYARI Lassaad Page 8 chapitre 2


Cours de microprocesseurs ISET GABES

TAYARI Lassaad Page 9 chapitre 2


Cours de microprocesseurs ISET GABES
II/ ARCHITECTURE ET FONCTIONNEMENT
-1/ Architecture du 8086
Le microprocesseur excute un programme en rptant les cycles suivants:
1. FETCH: Recherche de la prochaine instruction.
2. LECTURE: Lecture, si requise par l'instruction, d'un oprande.
3. EXECUTION: Excution de l'instruction
4. ECRITURE: Ecriture, si requise par l'instruction, du rsultat.
Il y a 2 units essentielles au sein du CPU pour l'excution squentielle d'un programme:
1. L'unit d'excution (EU):
Excute les instructions.
2. L'unit d'interface avec le bus(BIU):
recherche les instructions,
lit les oprandes,
crit les rsultats.
BIU=unit d'interface avec le bus
Les 2 units fonctionnent de faon indpendantes. Le recouvrement dans le temps entre
l'excution et la recherche fait disparatre le temps allou a ce dernier.
Exemple: T1 T2 T3 T4
Instruction 1 E1
Instruction 2 D2 E2 E2
Instruction 3 F3 Q3 E3
Instruction 4 F4 F4 D4
Instruction 5 F5
F=Fetch effectuer par le BIU
Q=Mise en Queue

D=Dcodage Effectuer par lEU


E=Excution

-2/ L'unit d'excution(EU):


L'unit d' excution comporte essentiellement:
l' UAL(16 bits),
Les registres gnraux,
Le registre FLAG.

TAYARI Lassaad Page 10 chapitre 2


Cours de microprocesseurs ISET GABES
L'UAL manipule les registres gnraux et les oprandes d'instruction.
Selon le rsultat le l'opration, le STATUS du CPU est maintenu par le positionnement des
FLAGS.

-3/ L'unit d'interface avec le bus (BUS) :


Le BIU effectue toutes les oprations de bus sur l'EU. Les transferts de donnes entre le
CPU d'une par et la mmoire ou les E /S d' autre par se font sur demande de L'EU.

-4/ Les registres gnraux:


Pour le programmeur, le 8086/88 est peru comme tant un ensemble de registres. On
peu classer les registres gnraux en 2 groupes
1. Groupe de donnes.
2. Groupe de pointeurs et index.
Groupe de donnes:
AX AH AL Accumulator
BX BH BL Base
CX CH CL COUNT
DX DH DL Data
Groupe de pointeurs & Index:
SP Stack pointer
BP Base pointer
SI Source index
DI destination index
Les registres donnes peuvent tres considrs, soit comme 4 registres de 16 bits ou 8
registres de 8 bits.
AX: L'accumulateur : utilis dans la multiplication et la division de mots. Ainsi qu'aux
oprations d'E/S
BX: Le registre base: employ pour : l'adressage de donnes dans une zone mmoire spare
du code (offset).
CX:registre de compte: utilis comme un compteur de rptition pour les boucles et pour les
oprations de chanes.
DX: Registre de donne: utilis dans les oprations de multiplication et de division de mots. Il
peut galement contenir le numro de port d'E/S.
SP,BP,Si et DI: Reprsentent des adresses de rfrence.

TAYARI Lassaad Page 11 chapitre 2


Cours de microprocesseurs ISET GABES
-5 Les registres segments:
Lespace mmoire de 8086/88 est divis en segments logiques allant jusqu' 64 KO
chacun
Le CPU un accs direct et simultan aux 4 segments. Leurs adresses de base se trouvent
dans les registres segments
CS Code segment
DS Data segment
SS Stack segment
ES Extra segment

CS: Code segment : pointe au segment contenant le programme en cours excution..


DS: Data segment : pointe au segment donne contenant les variables en cours.
ES: Extra segment : pointe a un 2me segment de donne, utilis pour les oprations de
chanes.

II-6 / Le registre FLAG: (16 bits):


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF

OVER-FLOW FLAG CARRY FLAG

15
DIRECTION FLAG PARITY FLAG

INTERRUPT FLAG AUXILIARY 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

TAYARI Lassaad Page 12 chapitre 2


Cours de microprocesseurs ISET GABES
III/ LE FONCTIONNEMENT INTERNE DU 8086/88
1- Le fonctionnement en mode d'interruption
Deux types d'interruptions:
INTERNE: Lie l'excution de l'instruction. Ce type d'interruption est non masquable,
il est appel "DEROUTEMENT" NMI.
EXTERNE:Provoqu par une cause externe INTR

2-Le fonctionnement avec la mmoire:


a- Segmentation et adressage physique:
Pour le 8086/88 le bits couvrant 1MO(de 00000H FFFFFH)

0 0 0 0 Adresse logique (16 bits)

Registre segment (16 bits) 0 0 0 0

ADDITIONNER

Adresse mmoire physique (20 bits)

Exemple si offset =0056h et base segment=4321h on aura

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

0100 0011 0010 0110 0110B = 43266H

Pour le 8086 on a toujours:


IP+CS et DI+ES pour les instructions string

SP+SS BP+SS

les autres +DS explicites

TAYARI Lassaad Page 13 chapitre 2


Cours de microprocesseurs ISET GABES
b- Le mapping
Lorsqu'il n'y a pas assez de blocs contigus pour le programme entier, on pourra
subdiviser celui-ci. Par exemple en segment code et en segment donnes. On utilise pour cet
effet deux registres de base:

Espace d'adressage Mcanisme de mapping Espace mmoire physique


logique du programme

Segment code Registre de base


du segment 1 Segment

code

Segment donne Registre de base


du segment 2

Segment

donne

3-Le Fonctionnement avec les E/S


a- L'Espace d'E/S
64K ports de 8 bits ou 32 K port de 16 bits.
L'accs au ports se fait a l'aides des instructions IN et OUT.
Format :
IN PORT, Donnes
OUT Donnes, PORT

TAYARI Lassaad Page 14 chapitre 2


Cours de microprocesseurs ISET GABES
IV - FONCTIONNEMNT DE 8086 /88 AVEC L'EXTERIEUR :
-1 Les pins du 8086 /88

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.

TAYARI Lassaad Page 15 chapitre 2


Cours de microprocesseurs ISET GABES

AD8-AD15: Les bus d'adresse de poids fort activs en sortie d'adresse .


A16 -A19: (S3-S6):Ces 4 broches sont multiplexs. Durant la sortie de l'adresse, les 4bits de
poids forts sont fournis pour les oprations d'criture ou de lecture de type "mmoire".
Lorsque le bus de donne est actif , les sorties S3 et S4 donnent le nom du registre segment
qui a servit gnrer l'adresse physique .
S4 S3 Registre
0 0 ES
0 1 SS
1 0 CS (ou aucun)
1 1 DS

la ligne S5 donne l' tat du FLAG d'autorisation d'interruption


le S6 est toujours zro tant que le processeur est sur le but.
b- Horloge: c'est le gnrateur 8284qui dlivre a l'entre CLK un signal d'horloge
c- : ligne de contrle est de status :

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.

ALE : (front descendant) verrouillage du latche 8282 (jamais en 3 me tats).

IO/M :( mmoire ou E/S).


RESET : (Redmarre le systme).

MN/MX: (mode MIN ou MAX).


DT/R :(Data transmit/Resive). Pour commander le 8286 et le 8287 (Transeiver).
DEN :(Data enable) valide la sortie 3 tats dit 8286/8287 ( contrleur de bus).

INTR: (Demande d'interruption) masquable.


NMI : (interruption non masquable) interne.

INTA : Acquittement d'interruption.


READY : pour intercaler des tats d'attentes (t-wait).
TAYARI Lassaad Page 16 chapitre 2
Cours de microprocesseurs ISET GABES
-2 Les circuits d'interface d'un microprocesseur
Les circuits de priphriques qui collaborent avec un microprocesseur sont:
A/ Gnrateur d'horloge 8284
B/ Le circuit d'E/S parallle 8255
C/ Le circuit d'E/S srie USART 8251A et UART 8250
D/ Le gestionnaire d'interruption 8259A
E/ Le contrleur DMA 8257
F/ L'intervalle de temps programmable 8253 (timer)

TAYARI Lassaad Page 17 chapitre 2


Cours de microprocesseurs ISET GABES

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

TAYARI Lassaad Page 18 chapitre 3


Cours de microprocesseurs ISET GABES

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.

TAYARI Lassaad Page 19 chapitre 3


Cours de microprocesseurs ISET GABES
II/ CONSTITUTION DUN PROGRAMME SOURCE
Un programme assembleur est un ensemble de dclarations constitu de directives et
dinstructions.
a) Les Instructions
Format : [ Label :] Mnmonique [oprandes] [ ;commentaire ]
Le champs Mnmonique est toujours obligatoire, les autres sont optionnels.
b) Les Directives
Format : [Nom] Directive [oprande] [ ; commentaire]
Seul le champs Directive est toujours obligatoire.
Les directives de donnes : (EQU; DB; DW ; DD)
- EQU :
Nom EQU expression ; assigne le nom de lexpression au nom

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.

TAYARI Lassaad Page 20 chapitre 3


Cours de microprocesseurs ISET GABES
Les directives de segment et de procdure (Assume ; segment ; proc/endp)

- segment : cette directive dlimite un segment.

nom_seg SEGMENT [align][combine][class]





nom_seg ENDS
ENDS marque la fin du segment.
Exemple :
DONNEE SEGMENT
Message DB bonjours a tous$
DONNEE ENDS

- 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

- proc/Endp : Cette directive marque le dbut et la fin dune procdure.


nom_procdure Proc
.
.
Endp

- Macro/Endm : Cette directive marque le dbut et la fin dun macro.

nom_macro Macro [param1,param2,,paramn]


.
.
.
.
Endm

TAYARI Lassaad Page 21 chapitre 3


Cours de microprocesseurs ISET GABES
Les directives de controle (ORG ;END )
- ORG :
Syntaxe : ORG expression [; commentaire ]
Cette directive met le compteur de location ladresse produite par lexpression.
Lassembleur range le code objet du programme partir de cette adresse.
Exemple :
ORG 100h ; fait ranger le programme 100h octets partir du dbut de
;segment de code.
- END :
Syntaxe : END expression [; commentaire ]
Cette directive marque la fin du programme source. expression est gnralement un
label partir duquel dbutera lexcution du programme.
Exemple :
END main ; main est l adresse de debut
c) Les Oprateurs
Les oprateurs arithmtiques (+ , - , * , / , MOD,SHL , SHR)
- Loprateur + :
Syntaxe Valeur1 + Valeur2
ExempleR_etat DW Base + 2
- Loprateur - :
Syntaxe Valeur1 - Valeur2
Exemple R_donnes DW R_etat - 2
Loprateur * :
Syntaxe Valeur1 * Valeur2
Exemple Distance EQU Vitesse * temps
- Loprateur / :
Syntaxe Valeur1 / Valeur2
Exemple Heure EQU 150/60
- Loprateur MOD :
Syntaxe Valeur1 MOD Valeur2
Exemple Minutes EQU 150 MOD 60
- Loprateur SHL :
Syntaxe Valeur SHL expression
Exemple Mask EQU 10111001B

TAYARI Lassaad Page 22 chapitre 3


Cours de microprocesseurs ISET GABES
Mask EQU Mask SHL 3; dcalage gauche du Mask de 3 bits
- Loprateur SHR :
Syntaxe Valeur SHL expression
Exemple Mask EQU 10111001B
Mask EQU Mask SHR 3; dcalage droite du Mask de 3 bits
Les oprateurs logiques(AND,OR,XOR,NOT)
- AND :Syntaxe Valeur1 AND Valeur2
- OR :Syntaxe Valeur1 OR Valeur2
- XOR :Syntaxe Valeur1 XOR Valeur2
- NOT :Syntaxe NOT Valeur1
Les oprateurs relationnels (EQU,NE,LT,GT,LE,GE)
- EQU :Syntaxe Operande1 EQU Operande2
Si on a galit des deux oprandes alors le rsultat est FFFFH sinon le rsultat est 0.
- NE :Syntaxe Operande1 NE Operande2
Si on a galit des deux oprandes alors le rsultat est 0 sinon le rsultat est FFFFH.
- LT :Syntaxe Operande1 LT Operande2
Si on a Operande1 < Operande2 alors le rsultat est FFFFH sinon le rsultat est 0.
- GT : Syntaxe Operande1 GT Operande2
Si on a Operande1 > Operande2 alors le rsultat est FFFFH sinon le rsultat est 0.
- LE :Syntaxe Operande1 LE Operande2
Si on a Operande1 <= Operande2 alors le rsultat est FFFFH sinon le rsultat est 0.
- GE : Syntaxe Operande1 GE Operande2
Si on a Operande1 >= Operande2 alors le rsultat est FFFFH sinon le rsultat est 0.
Les oprateurs retournant une valeur (SEG, OFFSET, TYPE, SIZE, LENGHT )
- SEG : Syntaxe SEG variable ou SEG label
SEG retourne la valeur segment dune variable ou dun label.
Exemple : mov AX,SEG table
- OFFSET : Syntaxe OFFSET variable ou OFFSET label
OFFSET retourne la valeur offset dune variable ou dun label.
Exemple : mov AX,OFFSET table.
- TYPE : Syntaxe TYPE variable ou TYPE label
Si loprande est une variable alors TYPE retourne 1 pour BYTE, 2 pour MOT ou 4 pour
WORD. Si loprateur est un label alors TYPE retourne 1 si NEAR ou 2 si FAR.
Exemple : mov AX,TYPE table.

TAYARI Lassaad Page 23 chapitre 3


Cours de microprocesseurs ISET GABES
- SIZE : Syntaxe SIZE variable
SIZE retourne le nombre doctets allous par une variable.
Exemple :soit
Table DW 100 DUP( ?)
On a alors mov AX,SIZE table met dans AX 200
- LENGHT : Syntaxe LENGHT variable
LENGHT retourne le nombre dunits allous par une variable.
Exemple :soit
Table DW 100 DUP( ?)
On a alors mov AX,SIZE table met dans AX 100.

III/LES MODES DADRESSAGE DU 8086/88


Le microprocesseur 8086/88 possde sept modes dadressage :
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
1- Mode dadressage imm diat.
Dans le mode dadressage immdiat, loprande source est une donne sur 8
ou 16 bits. Lexcution dune telle instruction est trs rapide.
Exemples :
MOV CX,500H ; dans CX=0000 0101 0000 0000 =0500H
MOV CX, -40H ; dans CX=1111 1111 1100 0000 =FFC0H
2- Mode dadressage registre.
Dans le mode dadressage registre, loprande utiliser est contenu dans un
des registres gnraux du CPU ( 8 bits ou 16 bits ).
La longueur de loprande source et loprande destinatio n doivent tre identiques.
Exemples :MOV AX,BX
MOV AL,BL

TAYARI Lassaad Page 24 chapitre 3


Cours de microprocesseurs ISET GABES
3- Mode dadressage direct.
Le mode dadressage direct spcifie compltement dans linstruction lemplacement
mmoire qui contient loprande. Dans ce type dadressage, ladresse est direc tement ajoute
au contenu du registre segment DS (multipli par 16) four former ladresse physique.
Exemple : MOV AX,COMPTE ;COMPTE est une variable dj dclare
Dans cette instruction, le contenu des cases mmoire dont ladresse est pointe par
DS :COMPTE et DS :COMPTE+1 sera transfr dans AX.
4- Mode dadressage registre indirect.
Dans le mode d adressage registre indirect, ladresse net pas donne dans
linstruction mais elle se trouve dans un registre intermdiaire quil faudrait videmment
charger au pralable par la bonne adresse.
Exemple : MOV BX, offset COMPTE
MOV AX,[BX]
La premire instruction signifie quon a mis dans le registre BX, loffset de la
variable COMPTE.
La deuxime instruction signifie quon a charger le registre AX par le contenu
de la case mmoire dont ladresse se trouve pointe par le registre BX, (qui est loffset de
COMPTE).
5- Mode dadressage relatif une base.
Dans le mode dadressage relatif une base, ladresse effective est la somme dune
valeur de dplacement plus le contenu du registre BX ou BP.
Avec le registre BX on peut accder divers structure de donnes qui se trouvent en
diffrents endroits de la mmoire. Pour ce la il suffit de mettre ladresse de base dans le
registre de base (BX ou BP) et on pointe les lments de la structure par leurs dplacement
par rapport la base. Pour se dplacer vers une autre structure, il suffit de changer le registre
de base.
Exemples :
AXDS :BX+3 AXSS :BP+3
MOV AX,[BX]+3 MOV AX,[BP]+3
MOV AX,[BX+3] MOV AX,[BP+3]
MOV AX,3[BX] MOV AX,3[BP]
6- Mode dadressage direct index.
Dans le mode dadressage direct index, ladresse effective est la somme dun label ou
dun dplacement et dun registre indexe SI ou DI.

TAYARI Lassaad Page 25 chapitre 3


Cours de microprocesseurs ISET GABES
Exemples :
TAB est une table doctets ( TAB DB 100 DUP( ?) )
MOV DI,2
MOV AL,TAB[DI]
Cette instruction charge le 3 me octet du TAB dans le registre AL.
TAB est une table de mots ( TAB DW 100 DUP( ?) )
MOV DI,4
MOV AX,TAB[DI]
Cette instruction charge le 3 me mot du TAB dans le registre AX.
7- Mode dadressage base index.
Dans le mode dadressage base index, ladresse effective est la somme de
trois composantes : le registre de base, le registre index et un dplacement o u un label.
Ce modes dadressage est intressant dans le cas ou on veut accder a une structure
bidimensionnelle comme le matrices.
Dans ce cas le registre de base contient ladresse de dpart du tableau, le registre index
contient le numro de la ligne et le dplacement le numro de la colonne.
Exemple : MOV AX,[BX][SI]
8- RESUME
Mode Dadressage Format Oprande Registre Segment Exemple
Immdiat Donne Aucun MOV AX,5
Registre Registre Aucun MOV AX,BX
Directe Dplacement ou Label DS MOV AX,COMPTE
Registre Indirect [BX] DS MOV AX,[BX]
[BP] SS MOV AX,[BP]
[SI] DS MOV AX,[SI]
[DI] DS MOV AX,[DI]
Relatif une Base [BX]+Dplacement DS MOV AX,[BX]+3
[BP]+Dplacement SS MOV AX,[BP]+3
Direct Index Label + [SI] ou Label[SI] DS MOV AL,MSG[SI]
Label + [DI] ou Label[DI] DS MOV BL, MSG+[DI]
Bas Index Label+[BX][SI] DS
Label+[BX][DI] DS MOV AX, MATR[BX][DI]
Label+[BP][SI] SS MOV AX, MATR[BP][SI]
Label+[BP][DI] SS

TAYARI Lassaad Page 26 chapitre 3


Cours de microprocesseurs ISET GABES

Chapitre 4

LE JEUX DINSTRUCTION DU 8086


PLAN
I-Les types dinstructions
II- Les instructions de transfert de donnes
III- Les instructions de transfert de donnes
IV- Les instructions arithmtiques
V- Les instructions Logiques
VI- Les instructions de branchement
VII- Les instructions de chanes de caractres (string)
IIX- Les instructions dinterruption
IX- les instructions de contrle de processeur

Chapitre 4
TAYARI Lassaad Page 27 chapitre 4
Cours de microprocesseurs ISET GABES

LE JEUX DINSTRUCTION DU 8086

I-Les types dinstructions :


Le 8086 possde 92 types dinstructions de base quon peut diviser en sept groupes
fonctionnels :
Les instructions de transfert de donnes
Les instructions arithmtiques
Les instructions Logiques
Les instructions de branchement
Les instructions de chanes de caractres (string)
Les instructions dinterruption
les instructions de contrle de processeur

II- Les instructions de transfert de donnes


a- Les instructions a usage gnral
MOV destination, source
PUSH source
POP destination
PUSHF
POPF
XCHG destination, source
XLAT table_source
b- Entre / Sortie
IN accumulateur, port
OUT port, accumulateur
c- Transfert dadresses
LEA reg16,mem16
LDS reg16, mem32
LES reg16, mem32

TAYARI Lassaad Page 28 chapitre 4


Cours de microprocesseurs ISET GABES

III- Les instructions arithmtiques :


a) Addition
ADD destination, source
ADC destination, source
AAA
DAA
INC destination
b) Soustraction
SUB destination, source
SBB destination, source
AAS
DAS
DEC destination
NEG destination
CMP destination
c) Multiplication
MUL source
IMUL source
AAM
Division
DIV source
IDIV source
AAD
d) Extension de signe
CBW
CWD

IV- Les instructions Logiques


a) Logiques
AND destination, source
OR destination, source
XOR destination, source
NOT destination, source
TEST destination, source
TAYARI Lassaad Page 29 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

V- Les instructions de branchement :


a) Branchement inconditionnel
CALL cible
RET [valeur pop]
JMP cible
b) Branchement conditionnel
JX label_court
c) Contrle dit ration
LOOP label_court
LOOPE/LOOPZ label_court
LOOPNE/LOOPNZ label_court

VI- Les instructions de chanes de caractres (string)


a) Prfixes de rptition
REP
REPE/REPZ
REPNE/REPNZ
b) Move
MOVS chane_dest, chane_source
MOVSB
MOVSW
c) Compare
CMPS chane_dest, chane_source
CMPSB
CMPSW
TAYARI Lassaad Page 30 chapitre 4
Cours de microprocesseurs ISET GABES

d) Scan
SCAS chane_source
SCASB
SCASW
e) Load et Store
LODS chane_source
LODSB
LODSW
STOS chane_destination
STOSB
STOSW

VII- Les instructions dinterruption :


INT type dinterruption
INTO
IRET

IIX-Les instructions de contrle de processeur :


a) Op rations flags
STC
CLC
CMC
STD
CLD
STI
CLI
b) Synchronisation externe
HLT
WAIT
LOCK
ESC opcode_externe, source
NOP

TAYARI Lassaad Page 31 chapitre 4


Cours de microprocesseurs ISET GABES

Chapitre 5

LA GESTION DES ENTREES /


SORTIES
PLAN
I- Introduction
II- Le dialogue entre l'UC et les priphriques
III- Echanges programms
IV- Echanges par interruptions
V- Echanges par DMA

TAYARI Lassaad Page 32 chapitre 5


Cours de microprocesseurs ISET GABES

Chapitre 5

LA GESTION DES ENTREES/SORTIES


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.

II- Le dialogue entre l'UC et les priphriques


Pour dialoguer avec ses priphriques, l'unit centrale fait appel trois principes:
1. Les changes programms : C'est le programme qui ordonne un accs un lment
priphrique quelconque.
2. Les interruptions : L'change peut dsormais avoir lieu de manire alatoire, n'importe
quel instant, uniquement lorsque le priphrique le demande.
3. Le DMA : ou accs direct la mmoire ( Direct Memory Access ). Ce mode d'change
privilgie la vitesse.
Chacune de ces mthodes offre des avantages et des inconvnients. C'est pourquoi elles sont
complmentaires et non concurrentes.

III- Echanges programms


La faon la plus immdiate de grer des changes consiste les prvoir dans le programme
que l'ordinateur est en train d'excuter. Au bon moment, une instruction demandera au
microprocesseur d'mettre un message vers un priphrique, ou d'observer si l'ut ilisateur a
tap quelque chose sur son clavier, ou, s'il a dplac la souris, si le modem a reu un message,
etc.

TAYARI Lassaad Page 33 chapitre 5


Cours de microprocesseurs ISET GABES
le mode d'change programm.
Que se passe-t- il lorsque le microprocesseur reoit une instruction d'change programm ? La
procdure est la suivante :
1. L'adresse du priphrique vis est mise sur le bus d'adresse.
2. Le processeur attend un court instant que tous les bits d'adresse soient stables.
3. Sur le bus de commande, il met un ordre d'chantillonnage. Les priphriques sont
informs que l'adresse est valide mais un seul la reconnatra comme sienne.
4. Le processeur place les donnes sur le bus de donnes s'il s'agit d'une criture vers le
priphrique. Si c'est l'inverse, une entre, ce serait le priphrique qui placerait les donnes
sur le bus.
5. Le processeur active un ordre d'chantillonnage sur le bus de commande pour indiquer que
les donnes sont stables et bonnes pour utilisation.
6. L'change a lieu et est termin.
En rsum, cette formule d'changes programms par scrutation apporte :
Avantages : la programmation est facile car tout est prvu dans le programme. Les changes
seffectuent des moments qu'on a soi- mme choisis, donc sans surprise. La mise au point du
programme est plus facile.
Inconvnients: le traitements des changes alatoires, asynchrones, est plus difficile. Le
balayage permanent des priphriques fait perdre beaucoup de temps et rduit la vitesse
dexcution du programme. On introduit des instructions le plus souvent inutiles pour les
priphriques.

TAYARI Lassaad Page 34 chapitre 5


Cours de microprocesseurs ISET GABES

IV- Echanges par interruptions


Le principe le plus familirement possible est le suivant :
Le microprocesseur est un personnage trs occup. On ne veut pas constamment le
dranger surtout lorsqu'il est en train d'excuter un programme.
Pourtant, un moment ou un autre, vous dsirez passer une nouvelle commande en
la tapant au clavier. Dans ce cas, c'est le clavier qui va se charger d'informer le
microprocesseur que l'utilisateur manifeste sa volont, laquelle est indiscutablement
prioritaire.
Pour cela, le clavier envoie un signal lectrique au microprocesseur. Ce dernier le
reoit et comprend qu'on rclame son attention. Le microprocesseur termine linstruction qu'il
tait en train d'effectuer, puis il range dans la mmoire tout ce qui concerne le programme en
cours afin de pouvoir le retrouver en bon tat plus tard. Aprs quoi, il examine d'o provient
la demande d'interruption, puis il appelle le programme spcial appel le programme
gestionnaire du clavier dans le cas qui vient d'tre voqu. Enfin, il prvient le clavier :
OK, tu peux y aller !.
Le clavier transmet ses informations au microprocesseur. Ce dernier les traite
immdiatement, c'est--dire qu'il excute vos ordres.
Lorsque c'est termin, le microprocesseur abandonne cette squence. Il rappelle le programme
prcdent dont il avait rang les lments en mmoire. I1 le reprend exactement au point o il
l'avait abandonn et en poursuit l'excution.
C'est l'ensemble de cette procdure qu'on appelle une inte rruption. Parce que ce type
d'interruption est dclench par le matriel, on dit encore qu'il s'agit d'une interruption
matrielle.

TAYARI Lassaad Page 35 chapitre 5


Cours de microprocesseurs ISET GABES

V- Echanges par DMA (8237)


Dans ce mode de transfert on utilise un circuit contrleur appeler DMA (Direct
Memory Access) qui permet les changes dinformation entre la mmoire et les priphriques.
Le processeur envoie au contrleur DMA:
ladresse de dbut
la longueur des donnes
Le sens du transfert
Puis dclenche le transfert
Le contrleur DMA prend en charge:
les commandes pour le contrleur de priphriques
les commandes et adresses pour la mmoire.

Avantages :
DMA externe / processeur
transfert de donnes sans passer par le processeur
DMA prioritaire sur le bus

TAYARI Lassaad Page 36 chapitre 5


Cours de microprocesseurs ISET GABES

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

TAYARI Lassaad Page 37 chapitre 6


Cours de microprocesseurs ISET GABES

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

Interface Interface Interface


Cependant, les informations doivent non seulement circuler dans le
microprocesseur, mais galement lextrieur de celui, de manire
communiquer avec la mmoire, les priphriques
On parle alors, dans le cas des micro-ordinateurs, du bus d extension.

TAYARI Lassaad Page 38 chapitre 6


Cours de microprocesseurs ISET GABES

II. C ARACTERISTIQUES D UN BUS :


Un bus est caractris par :
Le nombre de fils employs :8,16,32 bits
La nature des info. vhicules : donnes, @ , commandes
Le mode de fonctionnement : synchrone ou asynchrone
Le fait quil soit intelligent (bus master) ou non,
La manire dont sont transmises les informations ( en parallle ou en srie)
La frquence du bus (la vitesse du bus)

III. MODE DE FONCTIONNEMENT :


Les bus sont diviss en deux classes distinctes selon le cadencement des changes : les
bus synchrones et les bus asynchrones

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

2. LES BUS ASYNCHRONES


Les bus asynchrones ne disposent pas dhorloge pilote de bus
Il est plus facile de construire un bus synchrone au lieu dun bus asynchrone

IV. MODES DE TRANSMISSIONS DE L INFORMATION :

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

Cest le mode de transmission utilis au sein de lunit centrale entre processeur,


la mmoire, les contrleurs

TAYARI Lassaad Page 39 chapitre 6


Cours de microprocesseurs ISET GABES

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 processeur ou bus priv est le bus spcifique au microprocesseur.


Le bus local, dit aussi bus dextension prolonge le bus priv, permettant de
relier directement certains composants du systme tels que la mmoire au
microprocesseur.
Le bus global qui correspond galement un bus dextension, a pour rle de
relier entre elles les diffrentes cartes processeur dans une machine
multiprocesseur. Il est maintenant souvent confondu avec le bus local.

TAYARI Lassaad Page 40 chapitre 6


Cours de microprocesseurs ISET GABES

Le bus dentres-sorties sert aux communications avec des priphriques lents.


Ils correspondent aux sorties sries ou parallles.

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

Bus dextension ISA (8MHZ, 16 bits)

Contrleur Contrleur Contrleur


Graphique Disque Entes/Sorties

TAYARI Lassaad Page 41 chapitre 6


Cours de microprocesseurs ISET GABES

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.

TAYARI Lassaad Page 42 chapitre 6


Cours de microprocesseurs ISET GABES

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

Bus dextension VESA (33MHZ, 32 bits)

Contrleur Contrleur Contrleur Contrleur


VESA VESA VESA ISA

Bus dextension ISA (8MHZ, 16 bits)


Contrleur Contrleur Contrleur
Graphique Disque Rseau
Contrleur Carte
Entes/Sorties
Modem

Malheureusement VLB a t conu au dpart pour des processeurs 486 et reste


donc li aux caractristiques de ce processeur
Bien que la version VLB 2.0 offre un bus 64 bits avec un dbit atteignant en
principe 264 Mo/s, VESA semble tre actuellement en perte de vitesse au
dtriment du bus PCI, qui est plus performant et dune grande adaptabilit aux
diffrents processeurs.

TAYARI Lassaad Page 43 chapitre 6


Cours de microprocesseurs ISET GABES

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

Local Bus PCI (33MHZ, 32/64 bits)

Bus ISA (8MHZ, 16 bits)


Contrleur Contrleur Contrleur
Disque Rseau Entes/Sorties

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

TAYARI Lassaad Page 44 chapitre 6


Cours de microprocesseurs ISET GABES

Il offre lavantage dtre autoconfigurable, les cartes connectes tant


automatiquement dtectes et exploites au mieux :
Cest le Plug and Play qui vite donc davoir dplacer des switches sur la
carte.
Dans sa spcification 2.0, PCI prsente de nouveaux connecteurs courts et
surtout autorise laccs 64 bits ncessaire lexploitation Pentium.
Caractristiques des bus
Type Largeur Frquence Nombre max. Taux de
de connecteurs transfert
ISA 16 bits 8-12.5 MHz 8 8 Mo/s
EISA 32 bits 8-12.5 MHz 18 50 Mo/s
MCA 32 bits 8-12.5 MHz 8 50 Mo/s
VESA 32 bits 33 MHz 3 132 Mo/s
PCI 32 bits 33 MHz 10 132 Mo/s

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

Sa vitesse de transfert varie de lordre de 4 Mo/s 80 Mo/s selon la largeur du bus et le


standard SCSI employ (SCSI-1 4 Mo/s, SCSI-2, SCSI-3, Wide(Fast) SCSI 20 Mo/s,
Ultra 2 Wide SCSI 80 Mo/s).
Ce dbit dpend directement de la frquence employe sur le bus :
10 MHz pour le Fast SCSI
20 MHz pour lultra SCSI
40 MHz pour lultra 2 SCSI

Malheureusement, un inconvnient majeur est directement li cette augmentation de


frquence :
La longueur du bus est inversement proportionnelle la frquence.
Plus la frquence augmente et plus la longueur du bus diminue.

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.

Ultra 2 SCSI-LVD, dernire norme SCSI actuellement en vigueur, contourne ce


problme en diminuant la tension employe sur le bus qui passe 3.3v LVD
(Low Voltage Differential).
La longueur est ainsi porte 12 mtres contre 3 pour lUltra SCSI.

TAYARI Lassaad Page 45 chapitre 6


Cours de microprocesseurs ISET GABES

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.

Linterface Ultra 2 SCSI peut grer jusqu 31 units physiques diffrentes ce


qui permet de piloter disques durs ou optiques, streamer, scanner,
imprimantes

Taux de transfert
Frquence 8 bits 16 bits Distance Priph
Bus (mode wide) max supports

SCSI 5 MHZ 5Mo/s Non 6m 7


Fast SCSI, SCSI 2 10 MHZ 10 Mo/s 20 Mo/s 3m 7
Fast 20, Ultra SCSI 20 MHZ 20 Mo/s 40 Mo/s 1.5 m avec 7 7
priph. 3m
avec 3priph
Fast 40,Ultra 2 40 MHZ 40 Mo/s 80 Mo/s 12m 31
SCSI
La gamme SCSI

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.

TAYARI Lassaad Page 46 chapitre 6


Cours de microprocesseurs ISET GABES

De plus, de technologie Plug and Play, il permet de reconnatre


automatiquement le priphrique branch sur le canal et de dterminer
automatiquement le pilote ncessaire au fonctionnement de ce dernier.
Les caractristiques de ce bus sont :
Les informations sont codes en NRZI
Les informations circulent un dbit adapt au priphrique et variant de 1.5
12 MBps sur des cbles en paire torsade nexcdant pas 5 mtres entre chaque
priphrique
Le port USB se prsente gnralement sous la forme dun petit connecteur
rectangulaire qui comporte 4 broches.
USB utilise des principes de fonctionnement similaires ceux employs dans les
rseaux locaux (ensemble dordinateur qui sont connects entre eux), autorisant
plusieurs priphriques un dialogue simultan sur le mme bus. Par exemple
impression dun document tout en tlchargeant un fichier laide du modem et
en utilisant le clavier.

8. LE BUS FIREW IRE LINK


Le bus FireWire ou iLink dit galement SCSI srie, est ddi aux priphriques
rapides tels que des priphriques dimagerie, PAO (Publication Assiste par
Ordinateur)
En gnral, on ne le rencontre pas sur les cartes mres mais il se prsente sous la forme dune
carte dextension.
Ce bus prsente de nombreuses similitudes avec USB telles que le Plug and Play
Les dbits de ce bus est de 10 20 fois suprieurs ceux de lUSB
Fonctionne en mode bidirectionnel simultan

9. LE BUS GRAPHIQUE AGP


Le bus AGP (Accelerated graphics port) est un bus rcent 1997 spcialis
dans laffichage.
Il relie directement au travers du chipset le processeur de la carte
graphique avec le processeur de lUC et avec la mmoire vive

TAYARI Lassaad Page 47 chapitre 6


Cours de microprocesseurs ISET GABES

Il offre un bus de 32 bits, un fonctionnement en mode Pipeline ce qui autorise


des lectures et critures simultanes en mmoire
Des dbits atteignant 528 Mo/s (32bits 66 MHZ) dans la version AGP 2X et la
possibilit daccder galement la mmoire centrale en sus de la mmoire de la
carte graphique
On peut ainsi manipuler des images lourdes - affichage tridimensionnel 3D,
sans saturer la mmoire de la carte graphique, puisquon peut placer une partie
de limage en mmoire centrale.
La version de base AGP offre un dbit de 264 Mo/s, deux fois suprieur celui
du bus PCI (132 Mo/s)
Toutefois seules les cartes graphiques quipes de processeurs rellement
compatibles AGP peuvent actuellement tirer partie de ce bus.

TAYARI Lassaad Page 48 chapitre 6


Cours de microprocesseurs ISET GABES

Chapitre 7

LA GESTION DES INTERRUPTIONS

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

TAYARI Lassaad Page 49 chapitre 7


Chapitre 7

LA GESTION DES INTERRUPTIONS

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.

II- Echanges par interruptions


Le principe le plus familirement possible est le suivant :
Le microprocesseur est un personnage trs occup. On ne veut pas constamment le
dranger surtout lorsqu'il est en train d'excuter un programme.
Pourtant, un moment ou un autre, vous dsirez passer une nouvelle commande en
la tapant au clavier. Dans ce cas, c'est le clavier qui va se charger d'informer le
microprocesseur que l'utilisateur manifeste sa volont, laquelle est indiscutablement
prioritaire.
Pour cela, le clavier envoie un signal lectrique au microprocesseur. Ce dernier le
reoit et comprend qu'on rclame son attention. Le microprocesseur termine linstruction qu'il
tait en train d'effectuer, puis il range dans la mmoire tout ce qui concerne le programme en
cours afin de pouvoir le retrouver en bon tat plus tard. Aprs quoi, il examine d'o provient
la demande d'interruption, puis il appelle le programme spcial appel le programme
gestionnaire du clavier dans le cas qui vient d'tre voqu. Enfin, il prvient le clavier :
OK, tu peux y aller !.
Cours de microprocesseurs ISET GABES

Le clavier transmet ses informations au microprocesseur. Ce dernier les traite


immdiatement, c'est--dire qu'il excute vos ordres.
Lorsque c'est termin, le microprocesseur abandonne cette squence. Il rappelle le programme
prcdent dont il avait rang les lments en mmoire. I1 le reprend exactement au point o il
l'avait abandonn et en poursuit l'excution.
C'est l'ensemble de cette procdure qu'on appelle une inte rruption. Parce que ce type
d'interruption est dclench par le matriel, on dit encore qu'il s'agit d'une interruption
matrielle.

III- P rincipe de fonctionnement


Une interruption permet ainsi un vnement alatoire, survenant un moment
quelconque non prvisible, d'tre pris en compte par le microprocesseur. Elle offre encore
d'autres avantages, en voici un autre exemple avec une imprimante.
Supposons que le microprocesseur envoie un jeu de caractres l'imprimante; celle-ci
demande un certain temps pour les imprimer; pendant ce temps, le microprocesseur ne peut en
faire d'autre qu'attendre et se trouve paralys. Mais si l'on demande aux interruptions
d'intervenir, les choses s'arrangent: le jeu de caractres est envoy l'imprimante et le
microprocesseur poursuit une tche qu'il doit excuter. L'imprimante imprime les caractres
puis envoie une demande d'interruption au processeur pour lui demander la suite. Le gain en
temps d'excution peut tre norme pour le microprocesseur.
La procdure d'change par interruption fait appel des lignes spciales reliant le
priphrique au processeur.

TAYARI Lassaad Page 51 chapitre 7


Cours de microprocesseurs ISET GABES

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 :

TAYARI Lassaad Page 52 chapitre 7


Cours de microprocesseurs ISET GABES

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.

IV- les sous-programmes d'interruption


On peut imaginer que, lorsqu'un priphrique demande une interruption au
microprocesseur, il lui envoie simultanment l'adresse laquelle son programme spcifique
est log.
En pratique et avec les PC, les programmes gestionnaires de priphriques sont
chargs grce aux fichiers systme, les CONFIG.SYS et AUTOEXEC.BAT. C'est donc le
systme qui sait o il les a logs, partir de quelle adresse chacun d'eux se trouve. Reste
dresser une sorte de carte de ces adresses, pour le cas o une interruption surgira it.
Cette table s'appelle la table des vecteurs d'interruptions. Dans les PC, elle est
systmatiquement et obligatoirement loge partir de l'adresse 00000 de la mmoire centrale.
En pratique, 1 Ko (soit 1024 octets) sont rservs pour cette table, laque lle s'tend ainsi de
00000 003FF en hexadcimal. Sachant que 4 octets sont rservs pour une adresse
d'interruption, cette table peut en contenir 256 adresses.
Or, un PC classique ne dispose que de 15 lignes d'interruptions dclenches par des
priphriques et numrotes de 0 15, ce qui fait que les 15 premiers groupes de 4 octets
d'adresses leur sont rservs.
Voici alors ce qui se passe:

TAYARI Lassaad Page 53 chapitre 7


Cours de microprocesseurs ISET GABES

1. Un priphrique demande une interruption.


2. Le circuit d'interface la transmet un circuit spcialis appel gestionnaire des interruptions.
3. Ce circuit programmable d'interruptions transmet cette demande au microprocesseur en
l'accompagnant du numro de l'interruption.
4. Le processeur termine l'instruction en cours de traitement et incrmente le compteur ordinal,
de faon pointer l'instruction suivante (qui ne sera pas excute dans l'immdiat).
5. Il sauvegarde tous ses registres dans la pile.
6. Il envoie un accus de rception vers le priphrique.
7. Il multiplie par 4 le numro de l'interruption pour calculer une adresse en mmoire (ceci ne
s'applique qu'aux PC processeur INTEL .
8. Il lit en mmoire, partir de cette adresse, les 4 octets qui vont le brancher sur le bon
programme de traitement de l'interruption.
9. Il introduit cette nouvelle adresse dans son compteur ordinal.
10. Il commence l'excution du programme de traitement de l'interruption partir de cette
adresse.
11. L'interruption traite, il rencontre une instruction de Retour dans le sous-programme
d'interruption qui se termine l dessus.
12. Le microprocesseur rcupre dans la pile de sauvegarde le contenu de ses registres
sauvegards et les recharge.
13. Il reprend et poursuit l'excution du programme principal qui avait t interrompu.
Ce qui est important dans ce processus, c'est le mode d'adressage du sous-programme
d'interruption. C'est un mode indirect par mmoire dont le fonctionnement est rappel dans la
figure ci-dessous, mais dans le seul cas prcis des PC.

Mode
d'adressage indirect par m moire des sous-programmes d'interruption.
Ce mode de calcul est typique des PC.

TAYARI Lassaad Page 54 chapitre 7


Cours de microprocesseurs ISET GABES

Retenez qu'on appelle :


Table des vecteurs d'interruptions : la table d'adressage indirect fournissant l'adresse des
sous-programmes d'interruption.
Vecteurs d'inte rruptions :ces adresses.
Inte rruptions vectorises :ce mode d'adressage des interruptions.

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.

VI- Contrleur programmable d'interruptions P IC


Le contrleur programmable d'interruptions. est appel PIC, ce qui provient de
Programmable Interrupt Controler. Sa rfrence de circuit est 8259. Il est apparu avec le
premier PC et a suivi la ligne, devenant le 8259A avec le premier AT puis le 82C89A avec le
microprocesseur 486.
C'est un circuit nombre de broches limit, puisqu'il n'en possde que 28. Parmi elles, seules
8 broches sont rserves aux entres d'interruptions.

TAYARI Lassaad Page 55 chapitre 7


Cours de microprocesseurs ISET GABES

INT est le demande d'interruption mise par le circuit vers le microprocesseur.


INTA est la rponse du microprocesseur et signifie Interrupt Acknowledge, soit acquisition
d'interruption.

Registres du PIC et cblage du circuit


Les registres caractristiques du 8259 sont :
1. Registre de demande d'interruptions IRR ( Interrupt Request Register ). Il reoit les huit
lignes de demande d'interruptions et les mmorise.
2. Rsolveur de priorit: il slectionne l'interruption de plus haute priorit dans IRR. ,
3. Registre d'interruption en service ISR <In Service Register) : il spcifie l'interruption,
active lorsque plusieurs 8259 sont embots.
4. Registre de masquage des interruptions IMR ( Interrupt Mask Register ) : il enregistre les
interruptions dont la prise en compte est interdite un instant donn..
Le 8259 est Considr comme un priphrique par le processeur et adress comme tel via des
commandes d'entre-sortie (I/O) IN et OUT.

VII- Masquage des interruptions


Lorsque certaines squences critiques d'un programme sont en cours d'excution, on
peut vouloir interdire toute prise en compte d'une interruption quelconque qui risquerait de le
perturber gravement. Cette interdiction s'appelle le masquage des interruptions.
La mthode courante consiste positionner un bit d'tat, ou plusieurs bits d'tat dans le mot
d'tat du microprocesseur. Il s'agit des bits de masquage. On les bascule du mode inactif au
mode actif. Ds lors, le microprocesseur refuse toute prise en compte d'interruption. Le
TAYARI Lassaad Page 56 chapitre 7
Cours de microprocesseurs ISET GABES

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.

IIX- Types d'interruptions


On distingue plusieurs types d'interruptions, et tout d'abord :
1.Les interruptions mat rielles: dclenches par un priphrique.
2.Les interruptions logicielles: l'interruption est introduite sous forme d'une commande dans
un programme. Vous pouvez dfinir vos propres interruptions.
La table des vecteurs d'interruptions offre de la place pour 256 interruptions diffrentes dans
les PC. Or, il existe 16 interruptions matrielles numrotes de 0 15, l'interruption 2 tant de
toute faon indisponible en raison du cascadage des circuits PIC. Par consquent, les autres
interruptions, de 16 255, sont rserves aux interruptions logicielles.
Le BIOS des micro-ordinateurs PC et leur systme d'exploitation font gnralement appel
des interruptions logicielles pour grer une quantit de fonctions varies. Avec les PC, on
parle ainsi frquemment de l'interruption programme INT 21H qui donne accs de
nombreuses fonctions.
Les interruptions matrielles se subdivisent encore en plusieurs catgories :
1. Une interruption de plus haute priorit, non masquable pour cette raison. Elle s' appelle
interruption NMI, pour Non Maskable Interrupt. Le microprocesseur dispose d'une entre
spciale pour ce type d'interruption, qui s'ajoute par consquent aux autres.
2. Les 15 interruptions masquables courantes.
3. Une interruption encore suprieure en priorit appele RESET et servant la rinitialisation
du processeur.
On appelle encore ces interruptions matrielles des interruptions cbles, ou des
interruptions masquables.

TAYARI Lassaad Page 57 chapitre 7


Cours de microprocesseurs ISET GABES

LES INTERRUPTIONS MATERIELLES DANS LES PC

Numro de linte rruption Origine

0 Les clics du timer (le chrono systme)


1 Clavier
2 Cascade du PIC
3 Port de communication srie COM2 et COM4
4 Port de communication srie COM1 et COM3
5 Port parallle LPT2
6 Disquette
7 Port parallle LPT1 (imprimante)
8 Horloge-calendrier en temps rel
9 Redirection IRQ2-Ecran VGA
10 Rserv ou libre
11 Rserv ou libre
12 Rserv ou libre
13 Coprocesseur mathmatique
14 Disque dur
15 Rserv ou libre

IX- P rogrammation des interruptions


Procdure suivre pour l'criture d'un programme qui utilise les mcanis mes
d'interruption
L'criture d'un programme qui manipule les interruptions doit contenir cinq parties
principales:
1- criture d'une routine d'interruption qui doit se terminer par l'instruction IRET.
2- sauvegarde de l'ancien vecteur d'interruption.
3- chargement du nouveau vecteur d'interruption
4- Initialisation et criture du programme principal
5- rechargement de l'ancien vecteur d'interruption pour remettre le systme dans sans
tat initial et retour au DOS

TAYARI Lassaad Page 58 chapitre 7


Cours de microprocesseurs ISET GABES

l'architecture globale sera donc:


;---------------------------------------------------------
data segment
;dclaration des variables
data ends
;---------------------------------------------------------
code segment
Assume cs:code, ds:data
org 100h
debut:
; sauvegarde de l'ancien vecteur d'interruption
; Chargement du nouveau vecteur d'interruption
; initialisation et criture du programme principal
;rechargement de l'ancien vecteur d'interruption pour remettre le systme dans sont tat initial
; retour au DOS
; routine d'interruption
routine :cli
.
sti
iret
code ends
end debut
pour la lecture d'un vecteur d'interruption vous pouvez utiliser la fonction 35h
pour l'criture d'un nouveau vecteur d'interruption (installation), utilisez la fonction 25h
Exemple : Programmation de linterruption Horloge :
data segment
vectint equ 1ch
data ends

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

TAYARI Lassaad Page 59 chapitre 7


Cours de microprocesseurs ISET GABES

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

mov ah,4ch ; retour au DOS


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

TAYARI Lassaad Page 60 chapitre 7

You might also like