Um mnemônico de instrução é uma abreviatura legível para uma instrução, enquanto um opcode é a representação do código de máquina dessa instrução. Por exemplo, o mnemônico da instrução `ADD` pode ter um opcode `0x01`.
Os mnemônicos de instrução são definidos pela arquitetura do conjunto de instruções (ISA) para um processador específico. Isso significa que o mesmo mnemônico de instrução pode ter códigos de operação diferentes em processadores diferentes. Por exemplo, a instrução `ADD` pode ter opcode `0x01` em um processador e opcode `0x02` em outro processador.
Os Opcodes são normalmente codificados em formato binário, mas também podem ser representados em outros formatos, como hexadecimal ou decimal. O tamanho de um opcode depende do ISA do processador específico. Por exemplo, em alguns processadores, os opcodes podem ter 8 bits, enquanto em outros processadores podem ter 16 ou 32 bits.
A relação entre mnemônicos de instrução e códigos de operação é semelhante à relação entre nomes de funções e endereços de funções em uma linguagem de programação. Assim como um nome de função pode ser usado para fazer referência a uma função de maneira legível por humanos, um mnemônico de instrução pode ser usado para fazer referência a uma instrução de maneira legível por humanos. Quando um mnemônico de instrução é usado em um programa em linguagem assembly, o montador irá traduzi-lo no opcode correspondente antes de gerar o código de máquina para o programa.