Los lenguajes de bajo nivel tales como el lenguaje ensamblador pueden ser más difíciles de programar que los lenguajes de alto nivel debido a que están más íntimamente relacionados con las características técnicas del hardware.
Por otro lado, es más fácilmente traducible a lenguaje de máquina, tarea que realiza esencialmente un compilador.
Es el único lenguaje que un microprocesador entiende de forma nativa.
El avance respecto al anterior, es que en vez de llanos unos y ceros, se tienen mnemónicos ya escritos como un texto, y datos visibles a un lado del mnemónico.
En este se requiere de un programa que traduzca los mnemónicos a lenguaje máquina.