Skip to main content

Hva er et indeksregister?

I dataprogrammering og datamaskinarkitektur er et indeksregister et minneområde som vanligvis er innebygd i den sentrale prosesseringsenheten (CPU) som skal brukes som en veldig rask teller for å gå gjennom minneadresser eller for å holde oversikt over operasjoner som looping.Avhengig av type systemarkitektur, kan et indeksregister være et definert og dedikert register blant andre prosessorregistre, eller det kan være ethvert generell register.Oftest har et indeksregister den nåværende forskyvningen av et minneplass, med et annet register som holder basisadressen, så kombinasjonen av de to registerene oppretter en fullført minneadresse.En av spesialfunksjonene til et indeksregister, når man er spesielt utpekt av en CPU, er at den kan brukes til å enkelt gå gjennom minneadresser enten ved å bli økt eller dekrementert etter behov, slik at datastrukturer som matriser og stabler kan krysses.

Indeksregistrene på CPU for en datamaskin er utrolig lave nivåer av minne som vanligvis bare er direkte tilgjengelige av en programmerer gjennom bruk av monteringsspråk eller et lignende programmeringsspråk på lavt nivå.I noen av de mer vanlige typene prosessorer er to separate registre definert som indeksregistre, nemlig kildeindeksen (SI) og Destination Index (DI) -registrene.Andre prosessorer har ikke spesifikt indeksregistre eller støttende operatører som krever dem, noe som betyr at noe generelt formålsregister over riktig størrelse kan brukes.

Plassering som har en strøm av data som må nås sekvensielt.Et eksempel kan sees når du bruker en rekke data der alle elementene er ordnet fortløpende i minnet.Hvis indeksregisteret brukes til å få tilgang til en matrise, kan det inneholde den tilsvarende verdien av forskyvningen av elementet som nå er tilgjengelig når det blir lagt til et annet register som har en basisadresse, for eksempel datasegmentregisteret.Dette kan gjøre det veldig enkelt å fullføre prosedyrer som å kopiere innholdet i en null-terminert streng fra et kildeplass til en destinasjonsstreng. En annen bruk for et indeksregister kan være å holde informasjon om løkker og andre tellere.Noen systemarkitekturer foretrekker å bruke indeksregisteret for å holde antall iterasjoner som har skjedd i en sløyfe, selv om andre ganger ethvert register kan brukes.I tillegg er noen monteringsinstruksjoner avhengige av kilde- og destinasjonsindeksregistre for å utføre visse operasjoner, for eksempel blokkminnelesning eller skriving, som kan gjøres for å sende informasjon til et skjermbilde.