Deskriptor tabeller

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 7. november 2018; checks kræver 4 redigeringer .

Deskriptortabeller  er tjenestedatastrukturer, der indeholder segmentdeskriptorer .

Der er tre slags deskriptortabeller i x86-arkitekturen :

Global beskrivelsestabel

Da en deskriptor optager 8 bytes, og grænsen i GDTR-registret  er to bytes og gemmer størrelsen af ​​tabellen minus én (grænsens maksimale værdi er 65535), og 8192 x 8 = 65536.

LDT- og opgavesegmentbeskrivelser ( TSS ) kan kun findes her.

En funktion ved GDT er, at den ikke tillader adgang til den første (med en nulforskydning i forhold til begyndelsen af ​​tabellen) deskriptor . Adgang til den kaster en #GP- undtagelse , som forhindrer hukommelsesadgang ved hjælp af et ubelastet segmentregister.

Lokal beskrivelsestabel

I modsætning til GDT kan der være mange LDT'er (i henhold til antallet af opgaver (tråde), men ikke nødvendigvis). Hver opgave kan have sin egen. Placeringen af ​​den aktuelle opgavetabel er angivet af LDTR- registret .

Størrelsen og placeringen af ​​LDT i lineær hukommelse bestemmes af LDT - deskriptoren for GDT (men det betyder ikke, at størrelsen af ​​LDT kan være større end 65536 bytes ).

Den første LDT- deskriptor (#0) kan bruges.

Interrupt Descriptor Table

Afbrydelsestabellen er global. Placeringen i den fysiske hukommelse bestemmes af IDTR-registret .

Når der opstår en afbrydelse (eksternt, hardware eller forårsaget af Int- instruktionen ):

Se også

Links