








Historia del Lenguaje Ensamblador
Los lenguajes ensambladores fueron primero desarrollados en los años 1950,cuando fueron referidos como lenguajes de programación de segunda generación.
Por ejemplo, el SOAP (Symbolic Optimal Assembly Program) era un lenguajeensamblador de 1957 para el computador IBM 650. Los lenguajes ensambladoreseliminaron mucha de la propensión a errores y del consumo de tiempo de laprogramación de los lenguajes de primera generación que se necesitaba con losprimeros computadores, liberando a los programadores del tedio tal como recordarcódigos numéricos y cálculo de direcciones.
Una vez fueron ampliamente usadospara todo tipo de programación. Sin embargo, por los años 1980 (1990 enlos microcomputadores), su uso habÃa sido en gran parte suplantado porlos lenguajes de alto nivel, en la búsqueda de una mejorada productividad enprogramación. Hoy en dÃa, aunque el lenguaje ensamblador es casi siempremanejado y generado por los compiladores, todavÃa se usa para la manipulacióndirecta del hardware, acceso a instrucciones especializadas del procesador, opara resolver problemas de desempeño crÃtico.
Los usos tÃpicos son drivers dedispositivo, sistemas embebidos de bajo nivel, y sistemas de tiempo real.Históricamente, un gran número de programas han sido escritos enteramente enlenguaje ensamblador. Los sistemas operativos fueron casi exclusivamenteescritos en lenguaje ensamblador hasta la aceptación amplia del lenguaje deprogramación Cen los años 1970 y principios de los 1980.
También, muchasaplicaciones comerciales fueron escritas en lenguaje ensamblador, incluyendo unagran cantidad del software escrito por grandes corporaciones para mainframes deIBM. Los lenguajes COBOL y FORTRAN eventualmente desplazaron mucho deeste trabajo, aunque un número de organizaciones grandes conservaran lasinfraestructuras de aplicaciones en lenguaje ensamblador hasta bien entrados losaños 1990.La mayorÃa de los primeros microcomputadores confiaron en el lenguajeensamblador codificado a mano, incluyendo la mayorÃa de los sistemas operativosy de las aplicaciones grandes.
Esto era porque estos sistemas tenÃan limitacionesseveras de recursos, impusieron idiosincráticas arquitecturas de memoria y depantalla, y proporcionaron servicios de sistema limitados y con errores. Quizásmás importante era la falta de compiladores de primera clase de lenguajes de altonivel adecuados para el uso en el microcomputador.