A linguagem assembly é uma linguagem de baixo nível dependente da arquitetura da CPU e não é portável entre diferentes hardware. Embora tenha sido amplamente usada até os anos 80, atualmente é utilizada em aplicações críticas de desempenho, como drivers de dispositivos e sistemas embutidos. A programação em assembly exige conhecimento profundo da estrutura de hardware e possui suas próprias convenções, como a manipulação de registradores e pilhas.