Opcode určuje, která základní počítačová operace ze sady instrukcí má být provedena. Používá se při zápisu strojového kódu. Říká počítači, aby něco provedl. Každá instrukce strojového jazyka má obvykle opkód i operandy. Opkód je jako sloveso ve větě a operandy jsou jako podmět ve větě. Operandy jsou obvykle adresy paměti nebo registrů.

Opční kódy se ve strojovém kódu používají pro řadu funkcí, včetně sčítání registrů v plovoucím tvaru, sčítání registrů ve dvou, přesouvání hodnot registrů do paměti nebo na pevný disk, zastavení programu atd. V moderních počítačích se používají doslova stovky běžných opcodes.

Vzhledem k povaze architektury počítače mají operační kódy podobu binárních čísel. Alternativně mohou být opční kódy reprezentovány hexadecimálními číslicemi (například 10100101 = A5) pro snadnější čtení a kódování při návrhu nebo emulaci programu se strojovým kódem. Tyto hodnoty se pak transformují na své binární ekvivalenty, které se uloží. Moderní operační kódy mají délku nejméně dvou hexadecimálních znaků, které zabírají 1 bajt úložného prostoru.

Opční kódy se liší schopnostmi a "hodnotou" v závislosti na počítači, ke kterému patří, protože jsou hardwarově závislé. Například opkód pro STORE vyjádřený v hexadecimálním tvaru může být FA pro jeden počítač a 02 pro jiný. Některé opkódy nebudou na některých počítačích k dispozici. Obecně existují dva přístupy k sestavování instrukčních sad. Počítač s redukovanou instrukční sadou (RISC) nabízí méně možných opkódů ve prospěch zvýšení rychlosti pro jednoduché procesy. Počítač se složitou instrukční sadou (CISC) nabízí více opkódů ve prospěch zvýšení rychlosti pro složité procesy.

Programátoři zřídkakdy používají přímo operační kódy. Kdykoli jsou přímo naprogramovány do paměti, je vždy zaručeno, že budou fungovat pouze na počítači, pro který byly navrženy. Když programátoři píší v assembleru, překládací program převádí programové příkazy jedna ku jedné na příkazy strojového jazyka. Programátor si musí pamatovat pouze mnemotechnické označení každého opkódu místo jeho binární hodnoty. Alternativně lze použít programovací jazyk vysoké úrovně, řekněme 4. generace, který se převede na 3. generaci a tak dále, až se dospěje k 1. generaci. Odtud bude jednotlivý počítač převádět program do strojového kódu při každém čtení programového souboru. Tímto způsobem může program pracovat na mnohem větší škále počítačů.