Um opcode identifica qual operação básica do computador no conjunto de instruções deve ser realizada. Ele é usado ao escrever o código da máquina. Ele diz ao computador para fazer algo. Cada instrução de linguagem de máquina normalmente tem tanto um opcode quanto operandos. O opcode é como um verbo em uma frase, e os operandos são como o sujeito em uma frase. Os operandos são tipicamente endereços de memória ou de registro.
Os Opcodes são usados em código de máquina para uma série de funções, incluindo adição de registros Float Adição de registros, adição de registros de dois elogios, deslocamento de valores de registros para a memória, ou para um disco rígido, parada de um programa, etc. Há literalmente centenas de opcodes comuns empregados em computadores modernos.
Devido à natureza da arquitetura de um computador, os opcodes assumem a forma de números binários. Alternativamente, os opcodes podem ser representados por dígitos hexadecimais, (por exemplo, 10100101 = A5) para facilitar a leitura e a codificação ao projetar ou emular um programa de código de máquina. Estes valores são então transformados em seus equivalentes binários a serem salvos. Os opcodes modernos têm pelo menos dois caracteres hexadecimais de comprimento que ocupam 1 byte de espaço de armazenamento.
Os Opcodes variarão em capacidade e "valor" dependendo do computador ao qual pertencem, pois dependem do hardware. Por exemplo, o opcode para STORE como expresso em Hex poderia ser FA para uma máquina e 02 para outra. Alguns opcodes não estarão disponíveis em alguns computadores. Em geral, há duas abordagens para construir conjuntos de instruções. Um computador de conjunto de instruções reduzido (RISC) oferece menos opcodes possíveis em favor do aumento da velocidade para processos simples. A computação de conjuntos de instruções complexos (CISC) oferece mais opcodes a favor do aumento da velocidade para processos complexos.
Os Opcodes são raramente utilizados diretamente pelos programadores. Sempre que são programados diretamente na memória, eles só têm a garantia de funcionar no computador para o qual foram projetados. Quando os programadores escrevem em linguagem de montagem, um programa de tradução converte os comandos do programa, um por um, em comandos em linguagem de máquina. O programador só deve se lembrar de uma mnemônica para cada opcode ao invés de seu valor binário. Alternativamente, uma linguagem de programação de alto nível pode ser usada, digamos a 4ª geração, que é convertida para a 3ª geração e assim por diante até chegar à 1ª geração. A partir daqui, um computador individual converterá o programa em código de máquina sempre que o arquivo do programa for lido. Desta forma, um programa pode funcionar em uma variedade muito maior de computadores.