Vaja 12

 

V zgornji program (2-port.asm) pred labelo zanka vrini vrstico lds #$2000, nekam v glavno zanko pa vrini vrstici LDAA #$FF, PSHA. Kaj se zgodi, ko se program izvaja? Popravi program tako, da boš vrednost FF s sklada pobral nazaj v akumulator A.

Odgovor:

Štiri pomike v levo sem izbrisal, ker sem hotel le pokazati uporabo sklada.

Ce uporabimo ukaze lds #$2000, LDAA #$FF, PSHA, vrednost $FF še vedno ostane v akumulatorju A. S tem smo naredili le to, da smo na lokacijo na katero je kazal sklad (v našem primeru = $2000) naložili $FF.

Ukaz, da potegnemo zadnjo vrednost, ki smo jo dodali v sklad je PULA. Ker je v registru A še vedno ostala vrednost, ki smo jo zadnjo naložili, sem število v sklad naložil s pomocjo akumulatorja B, nazaj pa sem jo potegnil v akumulator A.

program