Call stack

Een call stack (ook wel control stack of run-time stack genoemd) is een datastructuur (een stack of stapel) die in het geheugen van een computer wordt bijgehouden tijdens de uitvoering van een programma.

De call stack wordt gebruikt om twee soorten gegevens op te slaan:

  • Gegevens die in het programma gebruikt worden, zoals lokale variabelen.
  • Administratieve gegevens die nodig zijn tijdens de uitvoering van het programma, zoals de oude inhoud van registers die tijdelijk hergebruikt worden.

De call stack van een programma wordt bijgehouden door het programma zelf. De machinecode die hiervoor verantwoordelijk is wordt door de compiler tijdens de compilatie gegenereerd. De programmeur die een programma schrijft hoeft hier zelf geen rekening mee te houden.

Sommige assemblerinstructies manipuleren de call stack expliciet (bijvoorbeeld met POP en PUSH instructies) of impliciet (bijvoorbeeld CALL en RET, die het retouradres op de stack plaatsen en er weer afhalen).


From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by razib.in