SP register (stackpointer)
SP is de stackpointer. (Stack is Engels voor 'stapel.)
De stackpointer wijst naar een vrij gebied in het datageheugen, waar de processor bij het aanroepen van een subroutine het terugkeer adres in kan plaatsen. Wanneer er iets op de stack gezet wordt, dan wordt de stackpointer verlaagd, zodat hij altijd op een vrije lokatie wijst. Als de processor bij terugkeer uit de subroutine het terugkeer adres van de stack afhaalt, wordt de stackpointer weer verhoogd. De 68HC11 heeft ook instructies om de inhoud van de registers op de stack te zetten (push), en er weer vanaf te halen (pull.)
De stackpointer wordt aan het begin van een programma geladen met het hoogste adres van een blok vrije geheugenlocaties in het RAM. Wanneer gegevens op de stack worden geplaatst, schrijft de processor deze gegevens op de plaats waar de stackpointer naartoe wijst. Daarna wordt de stackpointer verlaagd. Daardoor wijst de stackpointer altijd op een vrije geheugenlocatie.

Bij het teruglezen van gegevens van de stack wordt de omgekeerde route bewandeld: Eerst wordt de stackpointer verhoogd, daarna worden de gegevens gelezen van de plaats waar de stackpointer op wijst. De stack is speciaal bedoeld om gegevens tijdelijk te bewaren. Gegevens die op de stack worden geplaatst, moeten er in omgekeerde volgorde weer vanaf gelezen worden.
|