1. Introduction
2. Les interruptions matérielles
3. Les interruptions logicielles
4. La table des vecteurs d'interruption
5. Les différents types d'interruptions
6. Table des vecteurs d'interruption
7. Gestion des interruptions
8. Interruption logicielle
9. Le mode pas à pas
10. BIOS
Une interruption peut survenir à n'importe quel moment de l'exécution
d'un programme. Par définition, les interruptions sont asynchrones
par rapport aux opérations du processeur : il ne suffit pas de reproduire
l'état du processeur lors de l'interruption pour la reproduire .
Une interruption peut être provoquée par un des composants
électroniques de l'unité centrale (interruption matérielle),
par le programme qu'exécute le microprocesseur (interruption
logicielle), ou bien par une erreur dans le programme (exception).
Ces deux dernières sont synchronisées avec les opérations
du µP.
2. Les interruptions
matérielles : Une interruption matérielle est un arrêt
de l'exécution
séquentielle des instructions d'un
programme demandée par un des composants de l'unité centrale
suite à un événement matériel particulier (
ex: appui sur une touche du clavier). Cette interruption provoque l'exécution
d'une routine d'interruption, c'est-à-dire d'un programme de traitement
de l'événement survenu et propre à cet événement.
Les signaux d'interruption permettent aux différents composants
du système, d'attirer l'attention du microprocesseur afin de déclencher
une opération déterminée. Comme plusieurs demandes
d'interruption peuvent survenir simultanément, elles sont tout d'abord
envoyées au Contrôleur d'Interruption (PIC : Programmable
Interrupt Controler) qui les retransmet ensuite au microprocesseur.
Le PIC attribue pour ce faire un rang de priorité déterminé
à chaque demande d'interruption (IRQ : Interrupt Request) en fonction
de son origine et retransmet en premier lieu la demande d'interruption
dont le rang est le plus élevé. Le PIC délivre sur
le bus de données le numéro de la routine d'interruption
à exécuter, à l'intention du microprocesseur.
Le contrôleur d'interruptions (INTEL 8259) du PC XT peut traiter
jusqu'à 8 demandes d'interruption simultanées ( 8 entrées
IRQ(0) à IRQ(7) ) . Comme se serait insuffisant pour l'exploitation
du PC AT, deux contrôleurs ont été couplés pour
que puissent être traitées simultanément jusqu'à
15 demandes d'interruption.

3. Les interruptions
logicielles : Une interruption logicielle est un arrêt de l'exécution
séquentielle des instructions d'un programme "A" pour exécuter
les instructions d'une routine d'interruption ( ces routines font partie
du BIOS ou du DOS).
Ce type d'interruption est provoquée par une instruction INT
N° dans le programme "A". Le programme d'interruption qui est alors
exécuté est celui dont le numéro suit l'instruction
INT.
INT 21H ; appel du DOS
INT 14H ; appel des fonctions de communication du BIOS


6. Table des vecteurs
d'interruption :
|
|
|
|
|
|
|
CPU : Division par zéro |
|
|
|
CPU : Pas à pas |
|
|
|
CPU:NMI(défaut circuit RAM) |
|
|
|
CPU : Break point atteint |
|
|
|
CPU : Débordement numérique |
|
|
|
Copie d'écran |
|
|
|
Instruction inconnue (que 80286) |
|
|
|
Réservé |
|
|
|
IRQ0: Timer |
|
|
|
IRQ1: Clavier |
|
|
|
IRQ2: 2nd 8259 (AT uniquement) |
|
|
|
IRQ3: Interface sérielle 2 |
|
|
|
IRQ4: Interface sérielle 1 |
|
|
|
IRQ5: Disque dur |
|
|
|
IRQ6: Disquette |
|
|
|
IRQ7: Imprimante |
|
|
|
BIOS: Fonction vidéo |
|
|
|
BIOS: Déterminer configuration |
|
|
|
BIOS: Déterminer la taille mémoire de la RAM |
|
|
|
BIOS: Fonctions disquettes/disque dur |
|
|
|
BIOS: Accès à l'interface sérielle |
|
|
|
BIOS: Fonctions cassettes ou étendues |
|
|
|
BIOS: Test du clavier |
|
|
|
BIOS: Accès à l'imprimante parallèle |
|
|
|
Appel du BASIC en ROM |
|
|
|
BIOS: Lancer système (ALT CTRL DEL) |
|
|
|
BIOS: Lire date et heure |
|
|
|
Touche Break actionnée |
|
|
|
Appelé après tout INT 08 |
|
|
|
Adresse de la table des paramètres vidéo |
|
|
|
Adresse de la table des paramètres disquette |
|
|
|
Adresse des modèles bits de caract. |
|
|
|
DOS: Fin du programme. |
|
|
|
DOS: Appeler fonctions DOS |
|
|
|
Adresse routine DOS fin prg |
|
|
|
Adresse routine CTRL BREAK |
|
|
|
Adresse routine erreur DOS |
|
|
|
DOS :Lire disquette/disque dur |
|
|
|
DOS :Ecrire disquette/disque dur |
|
|
|
DOS: Fin prg. Laisser résident |
|
|
|
Réservé différentes fonctions |
|
|
|
|
|
|
|
BIOS: Fonctions disquettes |
|
|
|
Adresse table disque dur 1 |
|
|
|
Réservés |
|
|
|
|
|
|
|
Adresse table disque dur 2 |
|
|
|
Libres |
|
|
|
Libres |
|
|
|
Heure alarme atteinte (AT) |
|
|
|
Libres |
|
|
|
|
|
|
|
Inutilisés |
|
|
|
Inutilisés |
|
|
|
IRQ8: Horloge temps réel (AT) |
|
|
|
IRQ9: (AT) |
|
|
|
IRQ10: (AT) |
|
|
|
IRQ12: (AT) |
|
|
|
IRQ13: 80287 NMI (AT) |
|
|
|
IRQ14: Disque dur (AT) |
|
|
|
IRQ15: (AT) |
|
|
|
Inutilisés |
|
|
|
Utilisés par l'interpréteur BASIC |
|
|
|
Utilisés par l'interpréteur BASIC |
|
|
|
Inutilisés |
|
|
|
Inutilisés |
|
|
|
Inutilisés |
|
|
|
Inutilisés |
7. Gestion des interruptions :Le 8086 dispose de 3 lignes d'interruption :
Le RESET : La ligne RESET est une ligne d'entrée asynchrone.
Pour être pris en compte le signal RESET doit être à
1 pendant au moins quatre périodes d'horloge (une impulsion de 30µs
est nécessaire à la mise sous tension).
Déroulement de la réinitialisation :
Le 8086 termine toute opération dés qu'apparaît
une transition de 0 à 1 sur la ligne RESET. Le microprocesseur reste
alors inactif jusqu'à ce qu'une transition de 1 à 0 apparaisse.
Alors il faut environ 10 périodes d'horloge pour exécuter
les opérations suivantes :
Mise à zéro du registre d'état.(CCR)
- Le registre CS prend la valeur FFFFh
- Les registres DS, ES et SS et IP sont
remis à zéro.
- La première instruction rencontrée est un FAR JUMP
à une routine appelée Self Test POST à l'adresse F000:E05B.
Elle routine teste la valeur stockée dans la variable BIOS 0040:0078.
Selon cette valeur, l'initialisation sera de type "à chaud" (1414H)
ou "à froid" (différent de 1414H).
Une Initialisation "à froid" est effectuée à chaque
mise sous tension. Elle met en œuvre un test complet de la mémoire
(RAM et ROM), des périphériques et le chargement de la partie
résidente du DOS en mémoire vive.
Une initialisation "à chaud" est effectuée à chaque
appui simultané sur les touches CTRL ALT DEL. Elle est comparable
à l'initialisation "à froid", à ceci prés que
la mémoire n'est plus testée (donc démarrage plus
rapide).
8. Interruption logicielle : Une interruption logicielle peut survenir dans les cas suivants:
10. BIOS : Tous les ordinateurs possèdent
un BIOS (Basic Input Output System) qui leur est propre. Les PC
XT, AT et compatibles n'échappent pas à cette règle.
Le rôle principal du BIOS est de fournir un ensemble de fonctions
élémentaires destinées à gérer les communications
entre l'unité centrale et les organes périphériques
(clavier, écran, lecteurs de disques, RS232, mémoire, etc)
Sur les PC XT, AT et compatibles, le BIOS est implanté en ROM,
au-delà de l'adresse F000:C000. Il est accessible à travers
plusieurs interruptions logicielles spécialisées. La plupart
de ces interruptions se divisent en fonctions qui sont accessibles grâce
aux registres AH du microprocesseur.
Chaque fonction demande un ou plusieurs paramètres en entrée.
Ces paramètres sont passés à la fonction par l'intermédiaire
des registres du microprocesseur. De même, certaines fonctions renvoient
un ou plusieurs résultats lorsqu'elles ont fini de s'exécuter.
Ces résultats sont accessibles directement ou indirectement à
travers les registres du microprocesseur.
Un appel typique d'une fonction BIOS s'effectue donc selon les étapes
suivantes:
![]()