Table des vecteurs d'interruption (IVT) dans le 8086 : structure et fonctionnement
La Table des vecteurs d'interruption (IVT) dans le 8086 réside à l'adresse physique 00000h–003FFh (premiers 1 Ko). Elle contient 256 entrées, chacune de 4 octets (pointeur loin segment:offset) pointant vers une Routine de Service d'Interruption (ISR).
Organisation
- 00h–1Fh (0–31) : Réservées pour exceptions CPU (erreur division, NMI, point arrêt, débordement, etc.).
- 20h–FFh (32–255) : Disponibles pour interruptions matérielles (IRQ0–IRQ15 via remap PIC) et interruptions logicielles (INT n).
Séquence d'interruption
- Événement externe/interne déclenche interruption.
- CPU empile FLAGS, CS, IP.
- IF & TF effacés (désactive interruptions masquables, pas-à-pas).
- CPU lit vecteur 4 octets dans IVT (n × 4).
- Charge CS:IP depuis vecteur → saute vers ISR.
- ISR s'exécute, se termine par IRET (dépile IP, CS, FLAGS).
L'IVT permet une répartition rapide, déterministe — critique pour apps temps réel DOS/embarquées. OS en mode protégé (Linux, Windows) la remplacent par l'IDT (Interrupt Descriptor Table).
