Stack (mikroprocessor)

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

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[redigera | redigera wikitext]

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 varifrån i programmet den kom, 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[redigera | redigera wikitext]

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[redigera | redigera wikitext]