Programmeren in TI-83+ Assembly/Registers en procedures/Werking van de stack

Uit Wikibooks

Programmeren in TI-83+ Assembly

Voorblad / Inhoudsopgave

Assembly-basis

1 · 2 · 3 · 4 · 5 · T

Controle

1 · 2 · 3 · 4 · 5 · T

Geheugenbeheer

1 · 2 · 3 · 4 · 5 · T

Input en output

1 · 2 · 3 · 4 · 5 · T

Tekenen

1 · 2 · 3 · 4 · 5 · T

Registers en procedures

1 · 2 · 3 · 4 · 5 · T

Applications

1 · 2 · 3 · 4 · T

Gebruikersvariabelen

1 · T

Extra

1 · T

Speciaal

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[bewerken]

Ieder 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.

← De indexregisters Werking van de stack De instructies call en ret →
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.