Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa, utilizada para programar códigos entendidos por dispositivos computacionais, como microprocessadores e microcontroladores. O código de máquina torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemónicos[1][2].
Por exemplo, enquanto um computador sabe o que a instrução-máquina IA-32 (B0 61
) faz, para os programadores é mais fácil recordar a representação equivalente em instruções mnemónicas MOV AL, 61h
. Tal instrução ordena que o valor hexadecimal 61 (97, em decimal) seja movido para o registrador 'AL'.
Embora muitas pessoas pensem no código de máquina como valores em binário, ele é normalmente representado por valores em hexadecimal.
A tradução do código Assembly para o código de máquina é feita pelo montador ou assembler. Ele converte os mnemónicos em seus respectivos opcodes, calcula os endereços de referências de memória e faz algumas outras operações para gerar o código de máquina que será executado pelo computador.