Přidáno 1 486 bajtů,
10. 1. 2013, 17:16 ;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
[[Category:Assembler]]
[[Category:Instrukce mikroprocesoru 80386]]