Tabel descriptor de întrerupere

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Tabelul descriptorului de întrerupere ( IDT ) sau Tabelul descriptorului de întrerupere este o structură de date utilizată de arhitecturile x86 pentru a implementa un tabel vector de întrerupere. IDT este utilizat de procesor pentru a determina răspunsul corect la întreruperi și excepții .

Detaliile descrierii de mai jos se aplică în special arhitecturilor x86 și AMD64 . Alte arhitecturi au structuri de date similare, dar funcționează diferit.

Utilizarea IDT este declanșată de 3 tipuri de evenimente: întreruperi hardware, întreruperi software și excepții ale procesorului, care împreună sunt numite întreruperi. IDT constă din 256 de vectori de întrerupere.

Mod real

În procesorul 8086, IDT-ul se află în locații de memorie cuprinse între 0000h și 03ffh și include 256 pointeri în mod real de 4 octeți (256 * 4 = 1024 octeți de memorie). În 80286 și versiunile ulterioare, dimensiunea și locațiile de memorie ale IDT s-au schimbat pe măsură ce s-au schimbat în modul protejat, chiar dacă acest lucru nu și-a schimbat forma. Un indicator al modului real este o valoare pe 16 biți care indică un segment și o valoare pe 16 biți care indică un offset în acel segment. Primele 32 de indicatoare sunt rezervate excepțiilor procesorului intern, în timp ce întreruperile hardware pot fi mapate la orice vector datorită controlerului de întrerupere programabil.

O întrerupere foarte obișnuită în modul Real este întreruperea 0x10, codul VGA BIOS pentru funcțiile primitive de desenare a ecranului (tipărirea caracterelor, deplasarea cursorului etc.)

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