Vous êtes sur la page 1sur 28

Interruption

8086
sondage Vs Interruption
Vérifier à 2 méthodes pour gérer
intervalles
réguliers les événements ou les
entrées externes. pour
Touche
pressée ?
Non
un microrocessor
Oui Le sondage est adapté
Exécuter lorsque la
touche est pressée
aux situations où l'état
du périphérique est
censé changer
fréquemment, clavier/
souris.
définition de l’interruption
l'interruption est un processus par
lequel un périphérique externe peut
attirer l'attention du microprocesseur.
une interruption est un appel définition de
de sous-programme lancé l’interruption
par un périphérique externe
via le matériel (interruption
matérielle) ou le
microprocesseur lui-même
(interruption logicielle).
Type
d’interruption
interruption logicielle
L’interruption logicielle est une interruption
provoquée par une instruction de code exécutée par
un programme, permettant au programme de
transférer le contrôle à une routine spéciale pour
effectuer des opérations supplémentaires ou
spécifiques en réponse à cet événement.
L'interruption matérielle
L'interruption matérielle est un signal
électrique généré par un composant matériel,
tel qu'un périphérique ou un circuit de
minuterie, qui interrompt temporairement
l'exécution du processeur central pour traiter
un événement ou une demande matérielle
spécifique.
Interruptions matérielles
INTR : Demande d'interruption. Activée
par un périphérique externe pour
interrompre le processeur.
NMI : Interruption
Non Masquable.
Utilisée pour des
erreurs système
majeures telles que
des erreurs de parité
et des pannes
d'alimentation.
Interruption
Le 8086 gére 256 différents interruption
(vecteurs) définit par IN00, IN01,IN02,.....,INFF.
Chaque vecteur est spécifié par 4 octets, donc les
vecteurs d’interruption occupe 1 K de mémoire.
8086 a des interruptions matérielles, des
interruptions logicielles et des interruptions
générées par des erreurs.
Après chaque cycle Réponse
d'instruction, le processeur d'interruption
vérifie si une interruption
est en attente de service.
S'il trouve une demande
d'interruption et décide de
l'accepter et de la traiter.
Réponse d'interruption de 8086
la réponse est la séquence d'étapes suivante :
1.Le registre de Flags est poussé sur la pile.
2.Les entrées INTR sont désactivées et TF est mise à 0.
3.Le registre CS est poussé sur la pile.
4.Le registre IP est poussé sur la pile.
5.Le contrôle est transféré à l'emplacement dans lequel la « routine de
service d'interruption » (ISR) correspondante est stockée. En effet, ce serait
un saut de loin.
Réponse d'interruption de 8086
6. Le programme correspondant à l'ISR est exécuté. La dernière instruction
dans l'ISR sera IRET.
7. Le registre IP est chargé avec l'adresse du vecteur d'interruption (Offset).
8.Le registre CS est chargé avec l'adresse du vecteur d'interruption (segment).
TABLE DES POINTEURS D'INTERRUPTION
D’ou la table des vecteurs d'interruption obtient-elle ces
entrées. après la mise sous tension, le processeur se
réveille à l'adresse FFFF0H. C'est le point d'entrée du
BIOS dans la ROM. Le BIOS contient un ensemble de
routines qui assurent la prise en charge des périphériques.
Ces sous-programmes contrôlent, vérifient et initialisent
divers dispositifs, et établissent également deux zones de
données, dont l'une est la table de vecteurs d'interruption
dans l’emplacements 00000 à 003FFH.
Une table de vecteurs d'interruption
(IVT) est une structure de données TABLE DES POINTEURS
qui associe une liste de D'INTERRUPTION
gestionnaires d'interruption ISR à
une liste de demandes
d'interruption dans une table de
vecteurs d'interruption. Chaque
entrée de la table des vecteurs
d'interruption, appelée vecteur
d'interruption, est l'adresse d'un
gestionnaire d'interruption.
l'emplacement de l'ISR est déterminé
par l’adresse logique CS:IP qui est TABLE DES POINTEURS
enregistré dans chaque emplacement D'INTERRUPTION
mémoire INTnn. chaque INTnn a 4
octets, deux octets pour CS et deux
octets pour IP. par exemple:
l'emplacement de INT00 est 00000H,
tandis que l'emplacement de INT02 est
00008H. à partir de ces emplacement
l’IP et le CS sont chargée, puis l'ISR
pointée est executée.
Réponse d'interruption de 8086
Lorsque la dernière instruction de retour
d'interruption (IRET) de l'ISR est exécutée, les
registres poussés, c'est-à-dire le registre
d'indicateur, le registre CS et le registre IP sont
retirés de la pile dans l'ordre inverse. Cela
ramène l'exécution du microprocesseur au
processus d'origine.
Trouver l'adresse physique dans la table des Exemple
vecteurs d'interruption associée à:
1) INT13H, 2) INT08H.
L'a dre sse physi que de l 'e m pl a c e m e nt
mémoire où l'adresse de l'ISR est stockée
peut être calculée en multipliant quatre par le
type d'interruption puis en la convertissant
en hexadécimal.
L'adresse physique de INT13 est 13 * 4 = 52 = 34H
Adresse mémoire : 00034H à 00037H
(b) L'adresse physique de INT8 est 8 * 4 = 32 = 20H
Adresse mémoire : 00020H à 00023H.
Interruptions prédéfinit du 8086
INT0 erreur de division par 0 (0000:0000) a
la division, si le registre de quotient n'est pas
assez grand pour contenir le quotient, cette
interruption est générée automatiquement.
l'ISR de cette interruption est écrite à l'adresse
spécifiée dans l'IVT. Une possibilité est
simplement d'afficher un message indiquant «
débordement de division ».
Interruptions prédéfinit du 8086
INT 01 (pas à pas) Cette interruption est
dédié au execution pas à pas des
programmes. Lors du débogage logique de
nos programmes, nous aimerions nous
arrêter après l'exécution de chaque
instruction pour vérifier le contenu des
registres, de la mémoire, etc.
INT 01 (pas à pas)
Pour le pas à pas, l'indicateur d'interruption TF doit être
à 1 Après l'exécution de chaque instruction, le 8086
saute automatiquement à 00004H pour récupérer 4
octets pour CS : IP de l'ISR qui consiste à vider les
registres sur l'écran
Interruptions prédéfinit du 8086
L'interruption non masquable INT02 PIN17 (NMI) a
une priorité plus élevée que la demande d'interruption
masquable PIN18 (INTR). Cette interruption ne peut pas
être désactivée ou maintenue en attente. La NMI est
toujours reconnue par le microprocesseur, car elle ne peut
pas être masqué par un logiciel. Lorsqu'une NMI a été
émise, le 8086 termine l'instruction en cours, enregistre le
registres d'état, désactive les interruptions masquables et
passe le contrôle à la ISR
Interruptions prédéfinit du 8086
INT 03 (interruption de point d'arrêt)
Il s'agit de l'interruption du point d'arrêt, qui est utile
pour le débogage. Nous devrons définir des points
d'arrêt (arrêt après l'exécution d'un groupe
d'instructions) et vérifier le contenu des registres et
de la mémoire après l'exécution des instructions
jusqu'au point d'arrêt.
Interruptions prédéfinit du 8086
INT04 (interruption de débordement)
Cette interruption correspond au Flag de débordement. Si
OF est défini, cette interruption se produit, mais pas
automatiquement. Une instruction INTO (interruption sur
débordement) doit être écrite après le segment de
programme susceptible de provoquer l'activation du OF.
exemple emu8086: cette interruption sera-t-elle exécutée et pourquoi
oui puisque OF est défini par opération arithmétique
Interruptions matérielles
Il y a deux broches sur lesquelles les demandes
d'interruption matérielle du 8086 qui peuvent être reçues:
la broche INTR et la broche NMI.
Pendant toute réponse d'interruption, d'autres interruptions
sur la ligne INTR sont bloquées, car l'effacement de l'IF
fait partie de la réponse d'interruption du processeur.
Lorsqu'il est interrompu, le processeur passe dans un état
"d'acquittement d'interruption" qui provoque l'exécution
de deux cycles "d'acquittement d'interruption de la
machine".
Interruptions matérielles INTR
Au cours du premier cycle de la machine, les bus
d'adresse/données flottent et la broche INTA (accusé de
réception d'interruption) passe au niveau bas en T2 et reste
au niveau bas jusqu'à T4.
C'est une indication pour
l e d i s p o s i t i f
d'interruption que sa
demande d'interruption a
été acceptée par le
processeur.
Interruptions matérielles INTR
Dans le deuxième cycle machine, une fois de plus la ligne
INTA est au niveau bas de T2 à T4, puis le dispositif
d'interruption place le "numéro de type" de l'interruption sur
les lignes de données inférieures (D0 à D7), qui sort de la
condition flottante . Le processeur accepte ce nombre,
le multiplie par 4 et
accède à la table des
vecteurs d'interruption
à cet emplacement.
Interrupt Allocation for Type Numbers 0 to 21 in the IBM PC
INTERRUPTION FONCTION
00H CPU - Diviser par zéro (interruption d'exception)
01H CPU − Une seule étape
02H CPU - Interruption non masquable (NMI)
03H CPU − Instruction de point d'arrêt
04H CPU − Débordement
05H BIOS − Impression écran
06H CPU Op-code invalide
07H CPU - Coprocesseur mathématique non présent
08H Interruption du temporisateur système (IRQ 0)
09H Données clavier prêtes (IRQ 1)
0AH Cascade réservée (IRQ 2) à partir du contrôleur d'interruption esclave
0B,0CH Interruption matérielle pour la communication série
0DH Interruption matérielle du port parallèle (IRQ 5, LPT 2)
Interrupt Allocation for Type Numbers 0 to 21 in the IBM PC
INTERRUPTION FONCTION
0EH Interruption matérielle du contrôleur de disquette (IRQ 6)
0FH Interruption matérielle de l'imprimante (IRQ 7, LPT 1)
10H BIOS - Interruption logicielle pour utiliser la vidéo
11H BIOS − Appel de vérification de l'équipement
12H BIOS − Appel de vérification de la mémoire
13H BIOS - Interruption logicielle pour utiliser le disque dur
14H BIOS - Interruption logicielle pour utiliser le port série
16H BIOS − Interruption logicielle du clavier
17H BIOS − Interruption du logiciel de l'imprimante
18H BIOS − ROM BASIC loader
1AH BIOS - Interruption logicielle du système et de l'horloge en temps réel
1DH BIOS − initialization de pointer table parameter Video
20H DOS − Fin du programme
21H DOS - Services de demande de fonction

Vous aimerez peut-être aussi