Tabla de Vectores de Interrupción (IVT) en 8086: Estructura y Operación

La Tabla de Vectores de Interrupción (IVT) en el 8086 reside en la dirección física 00000h–003FFh (primeros 1 KB). Contiene 256 entradas, cada una de 4 bytes (puntero lejano segmento:desplazamiento) que apuntan a una Rutina de Servicio de Interrupción (ISR).

Distribución

  • 00h–1Fh (0–31): Reservadas para excepciones de la CPU (error de división, NMI, punto de interrupción, desbordamiento, etc.).
  • 20h–FFh (32–255): Disponibles para hardware (IRQ0–IRQ15 mediante reasignación de PIC) e interrupciones de software (INT n).

Secuencia de Interrupción

  1. Evento externo/interno dispara la interrupción.
  2. La CPU empuja FLAGS, CS, IP a la pila.
  3. IF y TF se borran (desactivan interrupciones enmascarables, paso a paso).
  4. La CPU obtiene un vector de 4 bytes de la IVT (n × 4).
  5. Carga CS:IP desde el vector → salta a la ISR.
  6. La ISR se ejecuta y termina con IRET (desapila IP, CS, FLAGS).

La IVT permite un despacho rápido y determinista—crítico para aplicaciones en tiempo real DOS/embebidas. Los sistemas operativos en modo protegido (Linux, Windows) la reemplazan con la IDT (Tabla de Descriptores de Interrupción).