INT/INTO - generování přerušení - voláná přerušovací procedury
Skočit na navigaci
Skočit na vyhledávání
- Instrukce
- INT/INTO - generování přerušení - voláná přerušovací procedury
- Časování
- 23-167 (80286), 33-287 (80386)
- Popis
- Instrukce INT generuje volání přerušovací procedury pomocí softwareového přepínače. Bezprostrední operand instrukce, který obsahuje hodnotu mezi 0 až 255 včetne, udáva číslo přerušení, jež je indexem do tabulky deskriptorů přerušení (IDT - Interrupt Descriptor Table) přerušovací procedury. V privilegovaném módu sestava tabulka deskriptoru z osmibytových deskriptorů. Deskriptor pro vyvolání přerušení musí specifikovat místo přerušení (interrupt gate), místo pro výjimku (trap gate) a popřípade místo úlohy (task gate). V RM je tabulka deskriptoru polem 4-bytových ukazatelů alokována na fixní adrese 00000H. Instrukce INTO je identická instrukci INT s tou výjimkou, že číslo přerušení je implicitne 4. Toto přerušení je tedy aktivovatelné jen v případe, že příznak OF je nastaven. V RM instrukce INT ukláda do zásobníku příznaky a registr CS a návratový IP (EIP) (v uvedeném poradí). Užíva přitom ukazatele, který je indexován číslem přerušení.
- Syntaxe
- INT interrupt_type
- INTO (žádné operandy)
- Ovlivňuje příznaky
- Při přepnutí úlohy (task switching) jsou ovlivneny všechny příznaky; jinak instrukce INT/INTO neovlivňují žádné příznaky.
- Nedefinované příznaky
- žádné
- Výjimky v privilegovaném módu
- Mohou byt generovýny výjimky porušení ochrany paměti, výjimka "deskriptor nenalezen", výjimka "chyba zásobniku", výjimka "neplatný stavový segment úlohy".
- Poznámka pro 80386
- Šírka operandu nemá žádný význam. Hodnoty registru EIP, ESP a FLAGS jsou zavadeny z místa přerušení (gate).
- Příklad
INT 21H INTO