Stack (mikroprocessor)

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Stack är ett minnesutrymme i RAM som en mikroprocessor kan läsa och skriva till. Till skillnad från heapen är användningen av stacken oftast kopplad till hur mikroprocessorn är designad.

Funktionsanrop

Många programspråk använder stacken för att skicka in data till funktioner. Detta görs genom att mikroprocessorn tillhandahåller en stackpekare i form av ett register samt primitiver för att lägga data på stacken (push) och hämta ned dem igen (pop). Först lägger man upp argumenten på stacken och sedan anropar man funktionen. Vid funktionsanropet lagrar mikroprocessorn självt undan ett par register som den måste "komma ihåg" efter att funktionsanropet är klart, till exempel vart i programmet den kom ifrån så att den vet var den skall fortsätta. Den har också ofta stöd för att hålla reda på hur många variabler som finns i funktionen för dessa är ofta förlagda på stacken om det inte funnits tillräckligt med register i mikroprocessorn lediga.

Avbrott

Eftersom stacken är ett minneutrymme som är optimerat för det program som för närvarande körs så byter de flesta mikroprocessorer till en separat stack när ett avbrott sker. På så sätt riskerar man inte att minnet tar slut under avbrottet.

Se även

Personliga verktyg