Stack pointer

Een stack pointer is een klein register dat het adres van het laatste programmaverzoek in een stack opslaat. Een stack is een gespecialiseerde buffer waarin gegevens van boven naar beneden worden opgeslagen. Als er nieuwe verzoeken binnenkomen, "duwen" ze de oudere verzoeken naar beneden. Het laatst ingevoerde verzoek staat altijd bovenaan de stack, en het programma neemt verzoeken altijd van bovenaf aan.

Een stack (ook wel een pushdown stack genoemd) werkt in de zin van last-in/first-out. Wanneer een nieuw gegevensitem wordt ingevoerd of naar de top van een stack wordt "gepushed", stijgt de stack-pointer naar het volgende fysieke geheugenadres, en wordt het nieuwe item naar dat adres gekopieerd. Wanneer een gegevensitem van de top van een stack wordt "getrokken" of "afgehaald", wordt het item gekopieerd van het adres van de stackaanwijzer, en neemt de stackaanwijzer af tot het volgende beschikbare item bovenaan de stack.