Académique Documents
Professionnel Documents
Culture Documents
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
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
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»).
12
Cours 10 microprocesseur
Les Interruptions
•La table TVI est de 1024 octets (1ko);
14
Cours 10 microprocesseur
Les Interruptions
15
Cours 10 microprocesseur
Les Interruptions
16
Cours 10 microprocesseur
Les Interruptions
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
les indicateurs FLAGS, CS et IP sont empilés dans cet ordre dans la pile ,
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