El lenguaje ensamblador, o assembler (en ingls assembly language y la
abreviacin asm), es un lenguaje de programacin de bajo nivel. Consiste en un conjunto
de mnemnicos que representan instrucciones bsicas para loscomputadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representacin simblica de los cdigos de mquina binarios y otras constantes necesarias para programar unaarquitectura de procesador y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura legible por un programador. Cada arquitectura de processador tiene su propio lenguaje ensamblador que usualmente es definida por el fabricante de hardware, y est basada en los mnemnicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras caractersticas del lenguaje. Un lenguaje ensamblador es por lo tanto especfico de cierta arquitectura de computador fsica (o virtual). Esto est en contraste con la mayora de los lenguajes de programacin de alto nivel, que idealmente son porttiles. Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al cdigo de mquina del computador objetivo. El ensamblador realiza una traduccin ms o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemnicas a las instrucciones y datos de mquina. Esto est en contraste con los lenguajes de alto nivel, en los cuales una sola declaracin generalmente da lugar a muchas instrucciones de mquina. Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de depuracin. Particularmente, la mayora de los ensambladores modernos incluyen una facilidad de macro (descrita ms abajo), y se llaman macro ensambladores. Fue usado principalmente en los inicios del desarrollo de software, cuando an no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia en ambientes acadmicos y de investigacin, especialmente cuando se requiere la manipulacin directa de hardware, alto rendimiento, o un uso de recursos controlado y reducido. Tambin es utilizado en el desarrollo de controladores de dispositivo (en ingls, device drivers) y en el desarrollo de sistemas operativos, debido a la necesidad del acceso directo a las instrucciones de la mquina. Muchos dispositivos programables (como los microcontroladores) an cuentan con el ensamblador como la nica manera de ser manipulados.