Skip to main content

Hvad er et stakregister?

I relation til computere er et stakregister en hukommelsesplacering mdash;normalt på den centrale behandlingsenhed (CPU) eller relateret behandlingshardware mdash;Det har den aktuelle adresse på toppen af en region med separat computerhukommelse kendt som stakken.Stakregisteret er vigtigt, fordi en computer, uden det, er nødt til at implementere en langsommere, mere fejlutsat metode til at spore strømmen af udførelse af et program.I de fleste systemarkitekturer er stakregisteret et dedikeret register, så det er ikke ved et uheld adgang, når du arbejder med andre hukommelsesregistre.Mere sjældent kan et stakregister være et generelt register, der normalt er tilgængeligt med et program, men som med vilje ikke bruges, fordi dens anvendelse er defineret af producenten.Når et computersystem indeholder to eller flere stakregistre, hvilket betyder, at der er potentielt mere end en stak, er arkitekturen kendt som en stakemaskine.

På det laveste niveau af computerprogrammering er en stak et område af hukommelse mdash;Normalt i Random Access Memory (RAM) MDASH;Det har en veldefineret type adfærd.Stakken kan få information tilføjet til den i en proces kaldet skubbe, eller den kan få information hentet fra den, der kaldes popping.Modellen til en stak er først-in, sidst-ud, hvilket betyder, at hvis flere informationsstykker skubbes ind i stakken, så vil det første element skubbes ind.Vær den første, der hentes med en popkommando.Et stakregister holder styr på toppen af stakken, som altid er den sidste vare, der skubbes ind i det.

Når et computerprogram udføres, har hver instruktion, der udføresaf programmet.Hvis et program kalder en subroutine mdash;eller en procedure, funktion eller metode, afhængigt af programmeringssprog og mdash;Derefter skal programmet hoppe til hukommelsesadressen på den subroutine -kode for at udføre den.Adressen, hvor programkontrolstrømmen går i stykker til gren til subroutinen, skubbes på stakken, så den huskes.Når subroutinen har afsluttet udførelsen, ved programmet, hvor det skal vende tilbage i hovedkoden ved at poppe kodeskemaet fra toppen af stakken, hvor stakregisteret peger.

Selvom der er andre metoder, der kan bruges tilOpnå de samme resultater ved hjælp af en stak og stakregister giver mulighed for et vigtigt programmeringskoncept kendt som Recursion.En rekursiv funktion er en funktion, der inden for sin egen kode kalder sig selv.Denne proces bruges ofte til sorteringsalgoritmer og til visse matematiske funktioner.Stakregisteret holder styr på alle de sidste adresser, hvor udførelsen er forgrening, så en funktion kan med sikkerhed implementere rekursion med den viden, at kontrol til sidst vil vende tilbage til oprindelsesstedet.En komplikation opstår, hvis hele stakken bliver fuld, og der er ikke noget rum i hukommelsen, i hvilket tilfælde en stakoverløb forekommer, hvilket ophører med udførelsen af programmet.