Opcode

En opkode angiver, hvilken grundlæggende computeroperation i instruktionssættet der skal udføres. Den bruges, når man skriver maskinkode. Den fortæller computeren, at den skal gøre noget. Hver maskinsprogsinstruktion har typisk både en opkode og operander. Opkoden er som et verbum i en sætning, og operanderne er som et subjekt i en sætning. Operander er typisk hukommelses- eller registeradresser.

Opcodes bruges i maskinkode til en række funktioner, herunder floataddition af registre, to-tals addition af registre, flytning af registerværdier til hukommelsen eller til en harddisk, stop af et program osv. Der findes bogstavelig talt hundredvis af almindelige opkoder, der anvendes i moderne computere.

På grund af computerens arkitektur har opkoder form af binære tal. Alternativt kan opkoder repræsenteres ved hexadecimale tal (f.eks. 10100101 = A5) for at lette læsning og kodning ved udformning eller emulering af et maskinkodeprogram. Disse værdier omdannes derefter til deres binære ækvivalenter for at blive gemt. Moderne opkoder er mindst to hex-tegn lange og fylder 1 byte af lagerplads.

Opcodes vil variere i kapacitet og "værdi" afhængigt af den computer, de tilhører, da de er hardwareafhængige. F.eks. kan opkoden for STORE, udtrykt i Hex, være FA for en maskine og 02 for en anden. Nogle opkoder vil ikke være tilgængelige på nogle computere. Generelt er der to tilgange til opbygning af instruktionssæt. En computer med reduceret instruktionssæt (RISC) tilbyder færre mulige opkoder til fordel for øget hastighed for simple processer. Komplekse instruktionssæt-computere (CISC) tilbyder flere opkoder til fordel for øget hastighed ved komplekse processer.

Opcodes bruges sjældent direkte af programmører. Når de programmeres direkte i hukommelsen, er det kun garanteret, at de virker på den computer, de er designet til. Når programmører skriver i assemblagesprog, konverterer et oversættelsesprogram programerklæringer en for en til maskinsprogskommandoer. Programmøren skal kun huske en mnemoteknik for hver opkode i stedet for dens binære værdi. Alternativt kan der anvendes et programmeringssprog på højt niveau, f.eks. 4. generation, som konverteres til 3. generation og så videre, indtil det når 1. generation. Herfra konverterer den enkelte computer programmet til maskinkode, når programfilen læses. På denne måde kan et program fungere på et meget større antal computere.

Spørgsmål og svar

Spørgsmål: Hvad er en opkode?


A: En opcode er et binært tal, der angiver, hvilken grundlæggende computeroperation i instruktionssættet der skal udføres. Det bruges, når man skriver maskinkode, og fortæller computeren, hvad den skal gøre.

Sp: Hvad er operander?


A: Operander er typisk hukommelses- eller registeradresser, der ledsager en opkode i en maskinsprogsinstruktion. De kan opfattes som subjektet i en sætning, mens opkoden fungerer som et verbum.

Spørgsmål: Hvor mange almindelige opkoder anvendes i moderne computere?


Svar: Der er hundredvis af almindelige opkoder, der anvendes i moderne computere.

Spørgsmål: Hvordan repræsenteres opkoder?


Svar: Opkoder kan repræsenteres ved enten binære tal eller hexadecimale cifre for at lette læsning og kodning ved udformning eller emulering af et maskinkodeprogram.

Spørgsmål: Hvor lange er moderne opkoder?


Svar: Moderne opkoder har en længde på mindst to hexadecifrede tegn og fylder 1 byte lagerplads.

Spørgsmål: Hvad er RISC og CISC?


Svar: RISC (Reduced Instruction Set Computing) tilbyder færre mulige opkoder til fordel for øget hastighed for simple processer, mens CISC (Complex Instruction Set Computing) tilbyder flere opkoder til fordel for øget hastighed for komplekse processer.

Spørgsmål: Hvordan bruger programmører normalt opkoder?


A: Programmører bruger sjældent direkte programmering i hukommelsen med en enkelt computers specifikke sæt instruktioner; i stedet skriver de programmer ved hjælp af assemblagesprog eller programmeringssprog på højt niveau, som konverteres til maskinkode, når programfilen læses, så den kan fungere på flere forskellige typer computere.

AlegsaOnline.com - 2020 / 2023 - License CC3