PUSH - ulož slovo na vrchol zásobníku
Verze z 10. 1. 2013, 17:16, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky)
- Instrukce
- PUSH - ulož slovo na vrchol zásobníku
- Časování
- 3-5 (80286), 2-5 (80386)
- Popis
- Instrukce PUSH snižuje hodnotu ukazatele zásobniku SP (ESP) o 2 a její operand je umísten na nový vrchol zásobníku. Je-li ukládaná hodnota registru SP (ESP), pak ji instrukce PUSH u procesoru 80286/80386 ukládá takovou, jaká byla před provedením instrukce PUSH (na rozdíl od PUSH u 8086, kde byla uchovávaná hodnota SP dekrementována o 2). Ukládat lze ES, CS, SS, DS, pamětové místo, bezprostrední operand či registr.
- Syntaxe
- PUSH source
- Ovlivňuje příznaky
- žádné
- Nedefinované příznaky
- žádné
- Výjimky v privilegovaném módu
- Jestliže je nová hodnota SP vně limitu segmentu SS, je generována výjimka "chyba zásobníku". Jestliže registry CS, DS nebo ES obsahují neplatné efektívni 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ů. Paměťové adresy jsou vytvářeny z 32-bitových efektívních adres.
- Příklad
PUSH AX PUSH EBX ;(jen pro 80386) PUSH CS