Vad är ett index register?

June 14

I datorprogrammering och datorarkitektur är ett indexregister ett minnesområde vanligen inbyggd i den centrala behandlingsenheten (CPU) för att användas som en mycket snabb räknare för stegar genom minnesadresser eller att hålla reda på transaktioner såsom looping. Beroende på vilken typ av systemarkitekturen, kan ett indexregister vara en definierad och särskilt register bland andra processorregistren, eller det kan vara vilket som helst allmänt ändamål registret. Vanligast, innehar ett indexregister den nuvarande förskjutningen för en minnesplats, med ett annat register som håller basadressen, så att kombinationen av de två registren skapar en färdig minnesadress. En av de speciella funktionerna hos ett indexregister, när en är speciellt betecknad med en CPU, är att den kan användas för att enkelt gå igenom minnesadresser antingen genom att inkrementeras eller dekrementeras som behövs så att datastrukturer som arrayer och staplar kan passeras .

De indexregister på CPU av en dator är oerhört låg nivå områden minne som vanligtvis endast är direkt tillgängliga genom en programmerare genom användning av assembler eller liknande Lågnivåspråk. I vissa av de mer vanliga typer av processorer, är två separata register definieras såsom indexregister, nämligen källindex (SI) och destinationsindex (DI) register. Andra processorer inte specifikt har indexregister eller stödjande aktörer som kräver dem, vilket innebär något allmänt ändamål register över lämplig storlek kan användas.

En av de vanligaste användningsområdena för ett indexregister är att fungera som en pekare till en minnesplats som innehåller en ström av data som behöver nås sekventiellt. Ett exempel kan ses vid användning av en rad uppgifter där alla element är arrangerade i följd i minnet. Om indexregistret används för att komma åt en array, då det kan hålla det motsvarande värdet av förskjutningen av elementet närvarande tillgås vid tillsats till ett annat register som håller en basadress, som det register datasegmentet. Detta kan göra det mycket lätt att slutföra förfaranden såsom kopiera innehållet i en null-terminerad sträng från en källplats till en destinations sträng.

En annan användning för en indexregister kan vara att hålla information om loopar och andra diskar. Vissa systemarkitekturer föredrar att använda indexregistret för att hålla antalet iterationer som har inträffat i en slinga, även om andra tider varje register kan användas. Dessutom kan vissa monteringsanvisningar förlitar specifikt på källa och destination index register för att utföra vissa operationer, såsom blocket minnes läsning eller skrivning, som kan göras för att skicka information till en skärm.

  • En indexregistret är en låg-nivå minnesområde, vanligtvis på CPU.