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...“) |
|||
Řádek 8: | Řádek 8: | ||
: 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): | : 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]] = 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. | + | :* [[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. |
Aktuální 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):
- 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