Vous êtes sur la page 1sur 29

 Cours 10 microprocesseur

Présenté par
Pr: M.Kedir-Talha
1
Cours 10 microprocesseur
 Les Interruptions
I ) Introduction :
Un système à base de microprocesseur peut comporter plusieurs
périphériques tels que : un Ecran, une souris, une imprimante, un disque
dure, un CNA (convertisseur numérique analogique), un CAN etc ..
Pour dialoguer avec ces périphériques le microprocesseur a trois
façons de communiquer avec ces derniers :
- En questionnant de façon continue le périphérique pour vérifier que
des données peuvent être lues ou écrites ( ).
- En l'interrompant lorsqu'un périphérique est prêt à lire ou écrire des
données ( )
- En établissant une communication directe entre deux périphériques
(DMA : ).
est un évènement qui provoque
en cours et provoque le du microprocesseur à un 2

dit de "traitement de l'interruption".


Cours 10 microprocesseur
 Les Interruptions

3
Cours 10 microprocesseur
 Les Interruptions

4
Cours 10 microprocesseur
 Les Interruptions
Interruption matériel et logiciel :
Interruption Matériel :
Une interruption est signalée au processeur par un signal électrique sur une borne
spéciale (INTR (InteRrupt, masquable interrupt(STI, CLI) et NMI, (No masquable
interrupt ) pour le 8086 Le traitement de l'interruption consiste soit :
•à l'ignorer et passer normalement à l'instruction suivante : c'est possible
uniquement pour certaines interruptions, nommées interruptions
masquables. Il est en effet parfois nécessaire de pouvoir ignorer les interruptions
pendant un certains temps, pour effectuer des traitements très
urgents par exemple. Lorsque le traitement est terminé, le processeur démasque les
interruptions et les prend alors en compte.
•à exécuter un traitant d'interruption (interrupt handler).
Un traitant d'interruption est un programme qui est appelé automatiquement lorsqu'une
interruption survient. L'adresse de début du traitant est donnée par la table des
vecteurs d'interruptions . Lorsque le (programme d'interruption) traitant a effectué son
travail, il exécute l'instruction spéciale IRET qui permet de reprendre l'exécution à l'endroit
5

où elle avait été interrompue.


Cours 10 microprocesseur
 Les Interruptions

6
Cours 10 microprocesseur
 Les Interruptions

7
Cours 10 microprocesseur
 Les Interruptions

8
Cours 10 microprocesseur
 Les Interruptions

9
Cours 10 microprocesseur
Les Interruptions
Interruptions logicielles :
Les interruptions logicielles sont semblables aux interruptions
matérielles. L'unique différence réside dans le fait que les interruptions
logicielles sont émises par des programmes. Les cinq premières
interruptions sont définies par Intel. Les autres interruptions sont définies par
le DOS et le BIOS. Ces interruptions ont une fonction définie, par exemple la
lecture et l'écriture sur le disque, l'écriture des données sur l'écran, etc.
Arrêt de l'exécution séquentielle des instructions pour exécuter les
instructions d'une routine d’interruption ( ISR «Interrupt Service Routine»)
( ces routines font partie du BIOS ou du DOS).
Ce type d’ Interruption est provoquée par une instruction INT N° dans le
programme principal
exemple : INT 21H; appel du DOS 10
Cours 10 microprocesseur
 Les Interruptions
A chaque appel d’interruption, l’ordinateur doit pouvoir trouver l’adresse
de l’ISR correspondante.

QUESTION:
Comment l’ordinateur peut trouver l’adresse de l’ISR correspondante.?

REPONSE:
Il dispose de la table des vecteurs d’interruptions
(TVI, ou IVT: «InterruptVectorTable»).

Cette table est implantée aux adresses:


0000:0000 0000:03FE ( 1024 octets)
11
Cours 10 microprocesseur
 Les Interruptions

12
Cours 10 microprocesseur
 Les Interruptions
•La table TVI est de 1024 octets (1ko);

•Chaque entrée de la table contient-le numéro de segment CS(16


bits)-l'offset IP (16 bits)

•CS:IP est l’adresse de début du sous-programme de traitement


d'interruption :.Cette adresse est appelée Vecteur d'interruption

•L’adresse de chaque vecteur étant sur 4 octets;

(2 pour CS et 2 pour IP) il ya: 1024/4 = 256 interruptions

•Le 8086 supporte 256 interruptions différentes, chacune étant 13


identifiée par un numéro compris entre 0 et FFh.
Cours 10 microprocesseur
 Les Interruptions

14
Cours 10 microprocesseur
 Les Interruptions

15
Cours 10 microprocesseur
 Les Interruptions

16
Cours 10 microprocesseur
 Les Interruptions

Quand le processeur rencontre une instruction telle que int21h, il va lire la


table des vecteurs d'interruption

Pour calculer l’adresse correspondant a l’interruption 21h ; il doit multiplier


par 4 le numéro de l’int 21h * 4= 84h;

Pour INT21h, l’adresse de l’ISR ( ou le vecteur de l’interruption )est stockée


à l’adresse 0000:0084

Question ?
Quelle est le numéro de l’interruption que nous aurons a l’adresse 0000:0080
de la table ?
17
Cours 10 microprocesseur
 Les Interruptions

18
Cours 10 microprocesseur
 Les Interruptions
Dans les programmes , en plus de l’instruction INT N°, en général
il faut placer dans AH le numéro de la sous fonction , mais parfois
également d’autres registres
FONCTIONS DE INT21H: Fonction1
Fonction 1: lit un caractère et le met dans al
MovAH,01
Int 21h
après avoir introduit un caractère(au clavier),son code ascii va
dans AL
et si on veut l’afficher la Fonction2: Ecriture d’un caractère à
l’écran
Mov DL, AL
MovAH,2 19

Int 21h
Cours 10 microprocesseur
 Les Interruptions
FONCTIONS DE INT21H: Fonction2
afficher caractère par caractère une chaine:

Exemple :
Mov cx,15
Lea si,str
Chaine:
Mov dl,[si]
Mov ah,2
Int 21h
Inc si
Loop Chaine
Ret
str db‘Instrumentation'
20
Cours 10 microprocesseur
 Les Interruptions
FONCTIONS DE INT21H: Fonction9
FONCTION 9: affiche une chaine de caractère , la chaine doit finir
par ‘$’
EXEMPLE :
ORG 0100H
JMP DEBUT
MESSAGE DB ‘Master Instrumentation ‘,13,10,’$’
DEBUT:
LEA DX, MESSAGE
MOV AH,09
INT 21H
HLT
Remarque : 13 est le code ASCII de retour chariot
21
10 est le code ASCII de retour à la ligne
Cours 10 microprocesseur
 Les Interruptions
FONCTIONS DE INT21H: Fonction9
org100h
Jmp debut
Mes1 db' Master ',13,10,'$'
Mes2 db‘Instrumentation ','$'
debut:
Lea dx, Mes1
Mov ah,09
Int 21h
Ret
Remarque: Seul le Mes1 qui sera affiché

Master
22
Cours 10 microprocesseur
 Les Interruptions
FONCTIONS DE INT21H: Fonction9
org100h
Jmp debut
Mes1 db' Master ',13,10
Mes2 db‘Instrumentation ','$'
debut:
Lea dx, Mes1
Mov ah,09
Int 21h
Ret
Remarque: les deux Mes1 et Mes2 seront affichés

Master
Instrumentation
23
Cours 10 microprocesseur
 Les Interruptions
FONCTION 4Ch
Fonction 4Ch: Mettre fin au programme, redonne le contrôle
au DOS et retourne un code de fin
MOV AH, 4Ch,: la sous fonctionINT 21h : call dos interrupt

24
Cours 10 microprocesseur
 Les Interruptions

25
Cours 10 microprocesseur
 Les Interruptions

Apres une interruption logicielle il y a sauvegarde dans la Pile :


1-du registre d’etat
2 -du registre CS
3 -du registre IP

les indicateurs FLAGS, CS et IP sont empilés dans cet ordre dans la pile ,

Rem: Le sous-programme d'interruption (ISR) doit se terminer par


l'instruction IRET, pour dépiler correctement ces paramètres

26
Cours 10 microprocesseur
 Les Interruptions

27
Cours 10 microprocesseur
 Les Interruptions
 Devoir 6
Soit le programme suivant:
Donner les contenus des registres, de la pile et des flags avant et après l’exécution de
l’interruption INT21h
org100h CMP Bl,2
Jmp debut JZ Boucle2
Mes1 db' Master ',13,10 JMP Boucle1
Mes2 db‘Instrumentation ','$' Boucle2:
debut: MOV BH,AL
MOV BL ,5 Lea dx, Mes1
MOV Al ,5 Mov ah,09
Boucle1: Int 21h
DEC BL hlt
MUL BL 28
Cours 9 microprocesseur
 LA PILE

29

Vous aimerez peut-être aussi