IRET - návrat z přerušení: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(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...“) |
(Žádný rozdíl)
|
Verze z 9. 11. 2012, 23:34
- 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