Linguagem da máquina, os códigos numéricos para as operações que um determinado computador pode executar directamente. Os códigos são cadeias de 0s e 1s, ou dígitos binários (“bits”), que são frequentemente convertidos de e para hexadecimal (base 16) para visualização e modificação humana. As instruções de linguagem da máquina utilizam tipicamente alguns bits para representar operações, tais como adição, e alguns para representar operandos, ou talvez a localização da instrução seguinte. A linguagem de máquina é difícil de ler e escrever, uma vez que não se assemelha à notação matemática convencional ou à linguagem humana, e os seus códigos variam de computador para computador.
Linguagem de montagem é um nível acima da linguagem da máquina. Utiliza códigos mnemónicos curtos para instruções e permite ao programador introduzir nomes para blocos de memória que contenham dados. Pode-se assim escrever “add pay, total” em vez de “0110101100101000” para uma instrução que acrescenta dois números.
Linguagem de montagem é concebida para ser facilmente traduzida para a linguagem da máquina. Embora os blocos de dados possam ser referidos pelo nome e não pelos endereços das suas máquinas, a linguagem de montagem não fornece meios mais sofisticados de organizar informações complexas. Tal como a linguagem de máquina, a linguagem de montagem requer o conhecimento detalhado de uma arquitectura informática interna específica. É útil quando tais detalhes são importantes, como na programação de um computador para interagir com dispositivos de entrada/saída (impressoras, scanners, dispositivos de armazenamento, e assim por diante).