ZASOBNIK

Procesor 8086 pouziva zasobnik typu LIFO (Last In First Out). V preklade to znamena, ze co sa ulozi ako posledne, to sa ako prve vyberie. Pre zasobnik sa pouziva operacna pamat RAM. Adresa segmentu v ktorom je ulozeny zasobnik sa nachadza v registri SS (Stack Segment). Register SP (Stack Pointer) tvori offset adresy zasobnika a ukazuje na jeho vrchol. Je to miesto kam bola ulozena posledna hodnota.

SS : SP

HODNOTA

64DC:270A

63A3

64DC:2708

025E

64DC:2706

64A1

64DC:2704

0044 <- Toto je vrchol zasobniku (posledna ulozena hodnota)

Pred ulozenim dalsiej 16-bitovej hodnoty na zasobnik sa hodnota registra SP zmensi o 2, po vybrati hodnoty zo zasobnika sa zase zvacsi o 2. Procesor pouziva zasobnik pre ulozenie navratovej adresy pri volani podprogramu instrukciou CALL a tiez pri preruseni. Programatory pouzivaju zasobnik pre uchovanie obsahu registrov, pre predavanie parametrov pri volani podprogramu (taketo predavanie parametrov vyuzivaju hlavne jazyky ako C, PASCAL a pod.).

Pre ulozenie 16-bitovej hodnoty na zasobnik sa pouziva instrukcia PUSH N, kde N je register AX, BX, CX, DX, DI, SI... Naopak pre vybratie tejto hodnoty pouzijeme instrukciu POP N, kde N je zase jeden z registrov.