Operationskod , driftskod , opcode - en del av maskinspråket som kallas en instruktion som definierar operationen som ska utföras.
Definitionen och formatet av instruktionskoder beror på instruktionsuppsättningen för en given processor (som antingen kan vara en huvudprocessor eller mer specialiserad för att arbeta inom ett visst område). Till skillnad från själva op-koden har en instruktion vanligtvis en eller flera definitioner för de operander (dvs. data ) som operationen ska utföras på, även om vissa operationer kan ha explicita operander eller inga alls. Det finns instruktionsuppsättningar med liknande fält med fast storlek för opcode- och operanddefinitioner, medan andra ( exempelvis x86 -arkitektur ) har en mer komplex struktur med variabel längd. [ett]
Beroende på arkitekturen kan operander vara registervärden , stackvärden , andra värden i minnet , I/O-portar och andra som definieras och nås med olika adresseringsmetoder . Operationstyper inkluderar aritmetiska operationer , datakopiering, logiska operationer , andra mjukvarukonstruktioner, i motsats till speciella instruktioner (som CPUID och andra).
Assembly language , eller helt enkelt assembler, är ett programmeringsspråk på låg nivå som använder mnemonics , instruktioner och operander för att representera maskinkod. Detta förbättrar läsbarheten samtidigt som full kontroll över maskinens instruktioner bibehålls. Det finns också högnivåspråk som är lättare att skriva stor kod än assemblerspråk. Sådana språk måste kompileras för översättning till maskinspråk eller köras med andra program - emulatorer eller tolkar . [2]
Opkoden kan också hittas i så kallad bytecode och andra representationer som är designade för mjukvarutolkar snarare än hårdvara. Dessa programvaruinstruktionsuppsättningar använder ofta lite högre datatyper och operationer än de flesta hårdvarumotsvarigheter, men de är ändå baserade på samma principer. Exempel inkluderar Java Virtual Machine (JVM) för programmeringsspråket Java , bytekoden som används av Emacs för kompilerad Lisp -kod och många andra. [3]