Hvad er et instruktionsregister?
Med hensyn til computerhardware er et instruktionsregister et element i den centrale behandlingsenhed (CPU) på en computer eller anden enhed, der indeholder programmeringsinstruktionen, der udføres ved starten af den næste urcyklus som dikteret af andre dele af CPU. Andre elementer i CPU'en, såsom instruktionsdekoderen, er afhængige af instruktionsregisteret for at indeholde denne information, så den kan dekodes, løses og til sidst udføres. Med nogle typer mikroprocessorarkitektur kan der være mere end et instruktionsregister, så flere instruktioner kan behandles på samme tid, hvilket danner en samlebåndstil for logik, der er kendt som en rørledning. Generelt gives nye instruktioner til instruktionsregisteret gennem en anden del af CPU'en, der er kendt som programtælleren, som tjener et meget lignende formål, men som kan gå videre til den næste instruktion, mens information, som instruktionsregisteret har, udføres.
Et register er en række fysiske afbrydere på en mikroprocessor eller et kredsløbskort, der kan tændes eller slukkes, hvilket gør hver afbryder ækvivalent med en bit. Når flere af omskifterne, også kaldet låse, er forbundet, er de i stand til at gemme binære data såsom numre, der kan omdannes til hukommelsesadresser eller instruktionskoder. Inden i CPU'en kan instruktionsregisteret indeholde enten adressen i computerhukommelsen af den instruktion, der udføres, eller for effektivitet kan den indeholde selve instruktionen. Denne information overføres til registeret gennem et andet register, der kaldes programtælleren, som i de fleste tilfælde hopper frem til den næste instruktion, der skal udføres, når den aktuelle instruktion er videregivet.
De typer instruktioner, der behandles af registre, er generelt kommandosprog-kommandoer på lavt niveau, der til sidst oversættes til maskinkode eller byte-kode. Disse adskiller sig tydeligt fra instruktioner på programmeringssprog på højere niveau, fordi monteringsvejledningen fungerer i meget lille, direkte skala. Et eksempel er en linje på højt niveau kode, der tilføjer to tal sammen og gemmer resultaterne i en variabel, der kun tager en enkelt linje på højt niveau kode til at udtrykke. Når koden er samlet, kunne der genereres et dusin eller flere instruktioner for at afslutte opgaven, idet hver instruktion er noget enkelt, såsom at blande værdier mellem RAM-hukommelse (RAM) og et værktøjsregister.
Når der henvises til en instruktion af instruktionsregisteret, overføres den til instruktionsdekoderen, så instruktionen kan konverteres til maskinkode. Henvisninger til hukommelsesplaceringer, der muligvis indeholder variabler eller anden information, løses, og at oplysninger undertiden placeres i andre registre. Endelig udføres den egentlige instruktion. I løbet af dette tidsrum øges programtælleren af CPU'en for at pege på den næste instruktion, der vil blive afholdt af instruktionsregisteret, så processen kan gentage, indtil hele programmet er udført.