Internamente, cada instrução de uma máquina (computador) é representada como uma sequência de bits. Uma instrução é dividida em campos, correspondentes aos elementos da instrução. A CPU deve ser capaz de extrair os dados dos vários campos da instrução e efetuar a operação requerida.
Torna-se difícil para um desenvolvedor de software (programador) lidar com representações binárias de instruções de máquina. Consequentemente, tornou-se usual a prática de usar uma representação simbólica para instruções de máquina.
Os códigos de operação são representados por abreviações, que indicam a operação a ser efetuada. Veja na tabela abaixo um exemplo:
Veja um exemplo em que os operandos são representados de maneira simbólica:
Em matemática, um operando é uma das entradas (argumentos) de um operador. Por exemplo, em 3 + 6 = 9, + é o operador e 3 e 6 são os operandos. Em código de máquina é bem parecido. Um operando é um valor (um argumento) no qual a instrução opera. O operando pode ser um registrador, um endereço de memória, uma constante literal, ou um rótulo. Um exemplo simples na arquitetura PC é: MOV DS, AX em que o valor no operando registrador AX deve ser movido (MOV) para o registrador DS. Dependendo da instrução, pode haver zero, um, dois ou mais operandos.
XADD W, Z
A instrução acima significa adicionar o valor contido na posição Z com o conteúdo do registrador W. Neste caso, Z é um endereço de uma posição de memória e W indica um registrador específico. Podemos notar que a operação é feita sobre o conteúdo da posição de memória, e não sobre seu endereço.