Interrupt Descriptor Table

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

La Interrupt Descriptor Table (IDT) o Tabella dei descrittori degli Interrupt è una struttura dati usata dalle architetture x86 per implementare una tabella di vettori interrupt. La IDT è usata dal processore per determinare la corretta risposta a interrupt e eccezioni.

I dettagli della descrizione sotto si applicano particolarmente alle architetture x86 e AMD64. Altre architetture hanno strutture dati simili, ma lavorano differentemente.

L'Uso dell'IDT è innescata da 3 tipi di eventi: interrupt hardware, interrupt software ed eccezioni del processore, che insieme vengono richiamate come interrupt. La IDT consiste di 256 vettori di interrupt.

Real Mode[modifica | modifica wikitesto]

Nel processore 8086, la IDT risiede nelle locazioni di memoria che vanno dalla 0000h alla 03ffh, e comprende 256 puntatori real-mode di 4 byte (256 * 4 = 1024 byte di memoria). Nell'80286 e successivi, la dimensione e le locazioni di memoria della IDT possono essere cambiate come sono cambiate nella Protected Mode, anche se tutto questo non ha cambiato la sua form. Per puntatore real mode si indica un valore di 16 bit che indica un segmento e un valore di 16 bit che indichi un offset all'interno di quel segmento. I primi 32 puntatori sono riservati alle eccezioni interne del processore, mentre gli interrupt hardware possono essere mappati su qualunque vettore grazie al programmable interrupt controller.

Un interrupt molto comune in Real Mode è l'interrupt 0x10, il codice VGA BIOS per le primitive funzioni di disegno su schermo (stampa di caratteri, spostamento del cursore ecc.)

tabella: https://web.archive.org/web/20171113165659/http://www.fermimn.gov.it/inform/gestint/tabint.htm