CPU en architectuur
Welk geheugengebied wordt gewoonlijk gebruikt om bij het aanroepen van een subroutine (functie) tijdelijk onder meer het terugkeeradres op te slaan?
- ADe stack
- BDe tag van de cache
- CEen vast gebied in ROM
Antwoord en toelichting tonen
Antwoord: A. De stack
Bij het aanroepen van een subroutine worden het terugkeeradres, te bewaren registerwaarden en lokale variabelen op de stack geplaatst. De stack is een structuur waarbij het laatst opgeslagene als eerste wordt teruggehaald (LIFO), zodat ook bij geneste of recursieve aanroepen in de juiste volgorde wordt teruggekeerd. De bovenkant wordt aangegeven door de stackpointer. Bij te diepe recursie raakt het gebied op en ontstaat een stack overflow, en er bestaan ook aanvallen die het terugkeeradres overschrijven door een array te overschrijden.