Start Logga In Skriv Artikel Om Oss
Vad söker du?
Allt om 'Stack'

Stack

Innehåll- 1. Allmänt - 2. Datalogi

1. Allmänt

En stack är en uppkastad hög. höstack, myrstack.

2. Datalogi

En stack används för att hantera data enligt modellen LIFO (Last In, First Out).En stack är ofta, men inte alltid, belägen i en process stacksegment.

När man lägger in data i en stack så brukar man kalla för att pusha data på stacken.Operationen som trycker in information i det rör som LIFOn i princip utgör kallas för push och operationen att ta bort data från stacken kallas för pop. Följande kod borde generera strängen "foo".

stack s;spush( "o" );spush( "o" );spush( "f" );write( spop() );write( spop() );write( spop() );

Hur stacken ovan implementeras är väldigt svårt att veta. Det kan lika gärna vara en länkad lista som en "riktig" stack.En riktig stack kan bestå, som hos Intel¹, av ett minnessegment och en stackpekare. När ett element pushas på stacken så skrivs minnet som finns på stacksegmentets basadress plus värdet på stackpekaren över, varpå stackpekaren ökas med det pushade värdets storlek.När ett element poppas från stacken så utspelar sig samma sak i omvänd ordning. Således måste man i förväg veta storleken för nästa element på stacken, annars riskerar stacken korrumpering.

¹ Motorolas arkitektur M68k använder en enklare teknologi där stackpekaren direkt anger minnets fysiska adress. Ursprungligen med 24-bitars adressbuss men från modellen MC68020 så gick man över till ren 32-bitars adressering. Intel hakade senare på med sin modell 80386 som även den använder en 32-bit adressbuss.

Följande exempel förutsätter att stackpekaren räknar i bytes.

move.w #1, d0; flytta värdet 1 till register d0move.w #2, d1; flytta värdet 2 till register d1push.b d0; pusha en byte från register d0 på stacken ; en byte med värdet 1 skrivs och stackpekaren ökas med ettpush.w d1; pusha ett word (2 bytes) på stacken från register d1 på stacken ; två bytes, ett word med värde 2, skrivs och stackpekaren ökas med tvåpop.wd2; popa ett word från stacken till register d2, det värde som var i d1 ; stackpekaren minskas med två och ett word läses in i register d2pop.wd3; popa ett word från stacken till register d3, men bara en liten ; hälften av det som läses av från stacken är pushat i den här kodsnutten ; stacken är korrumperad.

Redigera?

Artikeln skriven 2009-01-17 av Learning4sharing

Inga kategorier för denna artikel än...

Vi behhöver hjälp att kategorisera våra artiklar. Kan du skriva ett nyckelord för denna artikel? Du kan skriva upp till 3 olika nyckelord för denna artikel, vi uppskattar din hjälp!

Skriv nyckelord som du tycker beskriver denna artikel på ett bra sätt. Du kan ange 3 olika nyckelord för denna artikel, max 20 tecken per nyckelord.

  1. Lägg till fler
    Skriv in svaret på frågan: 7+1

Intresserad av fler artiklar?

Vägnät
Centrala Bilregistret
Cherbourg
Øresundsbro Konsortiet
Presentation Manager
Zilog
Z80
Dan Wolgers
Agnostiker

Senaste sökningarna

radsprång har fått 1462 sökningar. Den senaste gjordes 2025-12-16 10:59:33.

musikterm har fått 1681 sökningar. Den senaste gjordes 2025-12-16 10:59:17.

anadrol har fått 2027 sökningar. Den senaste gjordes 2025-12-16 10:59:09.

mormoner har fått 2076 sökningar. Den senaste gjordes 2025-12-16 10:58:36.

kulör har fått 1637 sökningar. Den senaste gjordes 2025-12-16 10:58:34.

Jan Nilsson har fått 1670 sökningar. Den senaste gjordes 2025-12-16 10:58:26.

79 har fått 1916 sökningar. Den senaste gjordes 2025-12-16 10:57:10.

torrent har fått 1565 sökningar. Den senaste gjordes 2025-12-16 10:56:49.

Polyfemos har fått 1747 sökningar. Den senaste gjordes 2025-12-16 10:56:21.

anno har fått 1868 sökningar. Den senaste gjordes 2025-12-16 10:55:44.

saddam har fått 1507 sökningar. Den senaste gjordes 2025-12-16 10:53:59.

flash har fått 1625 sökningar. Den senaste gjordes 2025-12-16 10:53:58.

Designed by: template world
Learning4sharing.nu
All Rights Reserved. 0.18 SEK

Logga in

Välkommen att redigera och skriva nya artiklar!

Ingent Konto?

Skaffa konto för att redigera och skapa nya ariklar Nytt Konto.

Ny Användare

Välkommen att redigera och skriva nya artiklar! Skapa konto nedan.


Ett verifieringsmail kommer att skickas till din E-post som du måste öppna och verifiera din E-post med

Lägg till artikel

Du är inte inloggad.

Logga In eller Skapa konto.