Otevřít hlavní menu

Změny

IRET - návrat z přerušení

Přidáno 1 721 bajtů, 10. 11. 2012, 00:34
Vytvorená stránka „;Instrukce : IRET - návrat z přerušení ;Časování : 17-169 (80286), 22-275 (80386) ;Popis : V reálném adresním módu instrukce IRET vyzvedáva ze zásobn...“
;Instrukce
: IRET - návrat z přerušení

;Časování
: 17-169 (80286), 22-275 (80386)

;Popis
: V reálném adresním módu instrukce [[IRET]] vyzvedáva ze zásobníku [[IP]] ([[EIP]]), [[CS]] a [[FLAGS]] a ukončuje kód programu přerušení. V PM instrukce [[IRET]] závisí na nastavení příznaku [[NT]] (Nested Task flag):

* [[NT]] = 1. Instrukce "obrací" efekt [[CALL]] nebo [[INT]], které vyvolaly přepnutí úloh. Kód provádejíci instrukci [[IRET]] má svůj stav uchován ve svém registru stavu ulohy (TS). Znamená to, že při opetovné aktivaci úlohy bude provedena jako první instrukce nasledujíci instrukcí [[IRET]].

* [[NT]] = 0. Instrukce [[IRET]] vrací řízení z přerušovacího podprogramu, aniž se vyskytlo přepnutí úloh. Privilegovaná úroveň kódu, do nehož se řízení z přerušovacího podprogramu navrací, musí být stejná nebo menší než privilegovaná úroveň přerušovacího podprogramu.


;Syntaxe
: IRET (žádné operandy)


;Ovlivňuje příznaky
: Celý registr příznaku je vyzvednut ze zásobníku.


;Nedefinované příznaky
: žádné


;Výjimky v privilegovaném módu
: Múže být generována všeobecná výjimka porušení ochrany paměti, výjimka "[[deskriptor nenalezen]]", výjimka "[[chyba zásobniku]]".


;Výjimky v reálnem módu
: Je generováno přerušení [[INT 13]] při vyzvedávaní obsahu zásobníku majíciho offset 0FFFFH.


;Poznámka pro 80386
: Je použit 32-bitový rozšírený ukazatel instrukce. Úroveň [[INTER]] ukláda 48-bitový [[ESP]]. Jsou ukládaný 48-bitový [[EIP]] a 32-bitový [[FLAG]].


;Příklad
IRET

[[Category:Assembler]]
[[Category:Instrukce mikroprocesoru 80386]]