Otevřít hlavní menu

Změny

PUSH - ulož slovo na vrchol zásobníku

Přidáno 1 486 bajtů, 10. 1. 2013, 17:16
bez shrnutí editace
;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]]