Ľudmila Jánošíková

Programovanie v jazyku symbolických adries

pre 32-bitové procesory Intel
Obsah Index
Inštrukcie pre prácu so zásobníkom

Inštrukcie pre prácu so zásobníkom nemenia príznakové bity:

OF SF ZF AF PF CF
- - - - - -

push operand (push onto stack)

Inštrukcia push uloží operand na vrchol zásobníka. Operandom môže byť 16- alebo 32-bitový univerzálny register, segmentový register, premenná typu word alebo dword a číslo. Registre a pamäťové operandy, ktoré nie sú typu word alebo dword (napr. 8-bitový register), nemožno ukladať do zásobníka. Priamy operand (číslo) veľkosti bajtu zaberie v zásobníku dve slová. Procesor pri ukladaní do zásobníka zmenší ukazovateľ zásobníka (obsah registra ESP) o 2, resp. 4 (podľa typu operandu) a potom uloží operand do zásobníkového segmentu na offset daný registrom ESP. Operandy sa pritom ukladajú ako obvykle v obrátenom poradí slabík, takže najnižší bajt operandu bude na offsete ESP v zásobníkovom segmente.

pop operand (pop from stack)

Inštrukcia pop vyberá zo zásobníka jedno slovo alebo dvojslovo. Operandom môže byť 16- alebo 32-bitový univerzálny register alebo pamäťové miesto typu word alebo dword. Postup pri vyberaní zo zásobníka je taký, že slovo, resp. dvojslovo (podľa typu operandu) sa skopíruje z adresy ESP do operandu a potom sa ESP zvýši o 2, resp. 4.

pushad (push all general registers)

Inštrukcia pushad uloží do zásobníka obsahy všetkých 32-bitových univerzálnych registrov v poradí EAX, ECX, EDX, EBX, ESP (pôvodný obsah), EBP, ESI, EDI a upraví ukazovateľ zásobníka: ESP = ESP - 32.

popad (pop all general registers)

Inštrukcia popad skopíruje 16 slov z vrcholu zásobníka do 32-bitových univerzálnych registrov v poradí EDI, ESI, EBP, ďalšie dve slová sa ignorujú, EBX, EDX, ECX, EAX a upraví ukazovateľ zásobníka: ESP = ESP + 32.

pushf (push flags onto stack)

Inštrukcia pushf uloží do zásobníka dolnú polovicu registra príznakov EFLAGS.

Inštrukcia pushfd uloží do zásobníka 32-bitový register príznakov EFLAGS.

popf (pop from stack into flags)

OF SF ZF AF PF CF
* * * * * *

Inštrukcia popf skopíruje slovo z vrcholu zásobníka do dolnej polovice registra príznakov EFLAGS a zvýši ukazovateľ zásobníka ESP o 2 (vyberie dolnú polovicu registra EFLAGS zo zásobníka).

Inštrukcia popfd vyberie zo zásobníka register EFLAGS.

Inštrukcie push číslo, pusha, popa, pushad, popad, pushfd a popfd patria do rozšíreného inštrukčného súboru

Hore

Načo je vám jazyk symbolických adries?

Architektúra moderných procesorov

Registre

Spôsoby adresovania

Premenné a návestia

Symbolické konštanty

Inštrukčný súbor

Segmentové direktívy

Moduly

Služby operačného systému MS-DOS

Služby operačného systému Windows 95/98/NT/XP

Systémová úroveň vstupu a výstupu

Prostriedky pre prípravu programu

Inštrukcie cyklu | Procedúry
Vydala Žilinská univerzita v Žiline, 2000. ISBN 80-7100-723-4.
Otázky a pripomienky môžete poslať autorke.
Naposledy upravené 16.10.2015.