Driftskode , driftskode , opkode - en del af maskinsproget kaldet en instruktion , der definerer den operation, der skal udføres.
Definitionen og formatet af instruktionskoder afhænger af instruktionssættet for en given processor (som enten kan være en hovedprocessor eller mere specialiseret til at arbejde i et bestemt område). I modsætning til selve opkoden har en instruktion normalt en eller flere definitioner for de operander (dvs. data ), som operationen skal udføres på, selvom nogle operationer kan have eksplicitte operander eller slet ingen. Der er instruktionssæt med lignende felter med fast størrelse til opcode- og operanddefinitioner, mens andre ( f.eks. x86 -arkitektur ) har en mere kompleks struktur med variabel længde. [en]
Afhængigt af arkitekturen kan operander være registerværdier , stakværdier , andre værdier i hukommelsen , I/O-porte og andre, der er defineret og tilgået ved hjælp af forskellige adresseringsmetoder . Operationstyper omfatter aritmetiske operationer , datakopiering, logiske operationer , andre softwarekonstruktioner, i modsætning til specielle instruktioner (såsom CPUID og andre).
Assembly sprog , eller blot assembler, er et programmeringssprog på lavt niveau, der bruger mnemonics , instruktioner og operander til at repræsentere maskinkode. Dette forbedrer læsbarheden og bevarer fuld kontrol over maskinens instruktioner. Der er også sprog på højt niveau, der er nemmere at skrive stor kode end assemblersprog. Sådanne sprog skal kompileres til oversættelse til maskinsprog eller køres ved hjælp af andre programmer - emulatorer eller tolke . [2]
Opkoden kan også findes i såkaldt bytecode og andre repræsentationer designet til softwarefortolkere frem for hardware. Disse softwareinstruktionssæt bruger ofte datatyper og operationer på lidt højere niveau end de fleste hardwaremodparter, men de er ikke desto mindre baseret på de samme principper. Eksempler inkluderer Java Virtual Machine (JVM) i Java -programmeringssproget , bytekoden, der bruges af Emacs til kompileret Lisp -kode og mange andre. [3]