El lenguaje Assembly es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.
Fue usado principalmente en los inicios del desarrollo de software, cuando aun no se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido.
Muchos dispositivos programables (como los microcontroladores) aun cuentan con el Assembly como la única manera de ser manipulados.
Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria, y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que, idealmente son portables.
Ejemplo de ensamblador para microcontrolador PIC16F84
ORG 0Iniciobsf STATUS,RP0clrf PORTBmovlw 0xFFmovwf PORTAbcf STATUS,RP0Principalmovf PORTA,Wmovwf Contadormovf Contador,Fbtfsc STATUS,Zgoto PuntoDecimalsublw d'9'btfss STATUS,CENDEjemplo de ensamblador para el microcontrolador Intel 8051ORG 8030HT05SEG:SETB TR0JNB uSEG,T05SEG ;esta subrutina es utilizadaCLR TR0 ;para realizar una cuenta deCPL uSEG ;0,5 segundos mediante laMOV R1,DPL ;interrupción del timer 0.MOV R2,DPHCJNE R2,#07H,T05SEGCJNE R1,#78H,T05SEGMOV DPTR,#0 RETEl lenguaje ensamblador no es propio de una sola arquitectura, esto se debe a que no todos los mnemónicos pueden ser soportados por alguna arquitectura, por eso se suele decir: "ensamblador para PIC, o ensamblador para ATMEL"Saludos!