Stackpekare

Från Wikipedia
Hoppa till: navigering, sök

En stackpekare är ett register i en CPU som innehåller minnesadressen på den minnescell där det översta elementet i anropsstacken finns. Man säger att registret 'pekar' på de översta elementet. Stacken fungerar ungefär som en hög papperslappar staplade på varandra, där CPU:n kommer åt den översta lappen.

I moderna datorarkitekturer används stackpekaren främst för att ange ett område där värden som är aktuella för den för tillfället exekverande subrutinen lagras. Det kan röra sig om innehållet i processorregister som det anropande programmet förväntar sig vara orörda, eller returadressen dit subrutinen hoppar när den når en 'retur'-instruktion.

Stacken används även i några processorarkitekturer för att överföra parametrar från ett anropande program till en funktion eller subrutin. Den anropade subrutiten kan då enkelt komma åt parametrarna genom att läsa den minnescell som stackpekaren pekar på. När subrutinen/funktionen körts klart, minskas stackpekaren så att den inte längre pekar på parametrarna. På detta sätt kan parametrar staplas på varandra utan att de krockar. Detta i sin tur är en förutsättning för att ett program ska kunna anropa funktioner och subrutiner i valfri ordning utan att problem uppstår. Notera att i andra processorarkitekturer föredrar man dock att överföra parametrar i bestämda register istället, eftersom det är mycket långsammare att läsa och skriva värdena i primärminnet.

Se även[redigera | redigera wikitext]