POP - vyzvedni operand ze zásobníku
Verze z 10. 1. 2013, 17:30, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Assembler pismeno N-P)
- Instrukce
- POP - vyzvedni operand ze zásobníku
- Časování
- 5 (80286), 5-7 (80386)
- Popis
- Instrukce POP vyzvedáva obsah vrcholu zásobníku a ukláda jej do DS, ES, SS, paměti nebo registru. Instrukce POP vezme slovo adresované registrem SP (= ukazatel zásobníku) a uloží jej na místo specifikované cílovým operandem instrukce. Ukazatel zásobníku je pak zvýšen o 2.
- Syntaxe
- POP destination
- Ovlivňuje příznaky
- žádné
- Nedefinované příznaky
- žádné
- Výjimky v privilegovaném módu
- Je-li ze zásobníku zaváděna hodnota do segmentového registru, je generována všeobecná výjimka porušení ochrany paměti, výjimka "chyba zásobníku" nebo výjimka "deskriptor nenalezen". Výjimka "chyba zásobníku" je generována také v případe, že aktuální vrchol zásobníku není umístěn v rozsahu právě adresovaného segmentu SS. Stejnou výjimku bude generovat také umístení operandu instrukce v segmentu chráneném proti zápisu. Jestliže registry CS, DS nebo ES obsahují neplatné efektivní adresy operandu, je generována všeobecná výjimka porušení ochrany paměti. Jestliže SS obsahuje neplatnou adresu, je generována výjimka "chyba zásobníku".
- Výjimky v reálnem módu
- Jestliže je slovní operand na offsetu 0FFFFH, je generováno přerušení INT 13.
- Poznámka pro 80386
- Šírka slova je 32 bitů. Adresy operandu v paměti jsou vytvárěny z 32-bitových efektívních adres.
- Příklad
Registrový operand POP CX POP EAX (jen pro 80386)
Segmentový registr POP SS