Přidáno 1 959 bajtů,
9. 11. 2012, 23:07 ;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
[[Category:Assembler]]
[[Category:Instrukce mikroprocesoru 80386]]