Operační kód , operační kód , operační kód – část strojového jazyka nazývaná instrukce , která definuje operaci, která má být provedena.
Definice a formát instrukčních kódů závisí na instrukční sadě daného procesoru (který může být buď hlavní procesor nebo více specializovaný pro práci v jakékoli konkrétní oblasti). Na rozdíl od samotného operačního kódu má instrukce obvykle jednu nebo více definic pro operandy (tj. data ), na kterých má být operace provedena, ačkoli některé operace mohou mít explicitní operandy nebo žádné. Existují instrukční sady s podobnými poli s pevnou velikostí pro definice operačních kódů a operandů, zatímco jiné ( například architektura x86 ) mají složitější strukturu s proměnnou délkou. [jeden]
V závislosti na architektuře mohou být operandy hodnoty registru , hodnoty zásobníku , další hodnoty v paměti , I/O porty a další, které jsou definovány a zpřístupňovány pomocí různých metod adresování . Typy operací zahrnují aritmetické operace , kopírování dat, logické operace , jiné softwarové konstrukce, na rozdíl od speciálních instrukcí (jako je CPUID a další).
Jazyk symbolických instrukcí nebo jednoduše assembler je nízkoúrovňový programovací jazyk , který k reprezentaci strojového kódu používá mnemotechnické pomůcky , instrukce a operandy. To zlepšuje čitelnost při zachování plné kontroly nad instrukcemi stroje. Existují také jazyky na vysoké úrovni , ve kterých je jednodušší psát velký kód než jazyk assembleru. Takové jazyky je třeba zkompilovat pro překlad do strojového jazyka nebo spustit pomocí jiných programů - emulátorů nebo tlumočníků . [2]
Operační kód lze také nalézt v takzvaném bajtovém kódu a dalších reprezentacích určených spíše pro softwarové interprety než pro hardware. Tyto softwarové instrukční sady často používají datové typy a operace o něco vyšší úrovně než většina hardwarových protějšků, ale přesto jsou založeny na stejných principech. Příklady zahrnují Java Virtual Machine (JVM) programovacího jazyka Java , bytecode používaný Emacsem pro kompilovaný kód Lisp a mnoho dalších. [3]