Programmeren in TI-83+ Assembly/Registers en procedures/Werking van de stack
Je hebt al leren werken met de stack. Een kleine herhaling:
- push registerpaar legt de waarde in registerpaar op de stack.
- pop registerpaar haalt het bovenste getal van de stack en slaat het op in registerpaar.
De stack is in werkelijkheid echter niet meer dan een rij getallen in het geheugen.
Hoe de stack wordt opgeslagen
bewerkenIeder registerpaar beslaat twee bytes in het geheugen. Het "onderste" getal van de stack staat in $FFFF-$FFFE. Hierna loopt de stack "achteruit" in het geheugen, dus het volgende getal zou worden opgeslagen in $FFFD-$FFFC. Hoe houdt de processor echter bij tot hoever de stack loopt? Namelijk, in $FFFB-$FFFA zou allerlei rommel kunnen staan en het is voor de processor dus niet te bepalen of deze nog bij de stack hoort of niet. Daarom is er een extra register ingevoerd, de stack pointer (sp). Dit register houdt de waarde vast van het laatste getal in de stack.