Tabella dei Vettori di Interrupt (IVT) in 8086: Struttura e Funzionamento
La Tabella dei Vettori di Interrupt (IVT) nell'8086 risiede all'indirizzo fisico 00000h–003FFh (primi 1 KB). Contiene 256 voci, ciascuna 4 byte (puntatore segment:offset) che punta a una Routine di Servizio di Interrupt (ISR).
Layout
- 00h–1Fh (0–31): Riservato per eccezioni CPU (errore divisione, NMI, breakpoint, overflow, ecc.).
- 20h–FFh (32–255): Disponibile per hardware (IRQ0–IRQ15 tramite rimappatura PIC) e interrupt software (INT n).
Sequenza di Interrupt
- Evento esterno/interno attiva l'interrupt.
- La CPU inserisce FLAGS, CS, IP nello stack.
- IF e TF vengono cancellati (disabilita interrupt mascherabili, single-step).
- La CPU recupera il vettore di 4 byte dall'IVT (n × 4).
- Carica CS:IP dal vettore → salta all'ISR.
- L'ISR esegue, termina con IRET (estrae IP, CS, FLAGS).
L'IVT consente un dispatch rapido e deterministico—critico per app real-time DOS/embedded. I sistemi operativi in modalità protetta (Linux, Windows) lo sostituiscono con l'IDT (Interrupt Descriptor Table).