Stackpekare

Från Rilpedia

Version från den 31 maj 2009 kl. 12.45 av Ptbotgourou (Diskussion)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

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 subriten 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

Personliga verktyg