-
Durante la segunda guerra mundial, se desarrollaban las primeras computadoras, como el Colossus en el Reino Unido y ENIAC en los Estados Unidos, y se programaban directamente en código enigma.
-
Von Neumann sienta las bases para el diseño de los sistemas informáticos moderno, incluye los leguajes de programación de bajo nivel como el lenguaje ensamblador de 8086.
-
Aparecen los primeros lenguajes ensambladores, como el lenguaje ensamblador para la computadora EDSAC en una universidad de Cambridge.
-
IBM desarrolla su primer lenguaje ensamblador para la serie IBM 700/7000, proporcionando nemotécnico simbólicos para las instrucciones de código enigma.
-
Se introducen los lenguajes ensambladores más avanzados, como BAL(Basic Assembler Language) para los sistemas IBM 360/370.
-
En 1970 se establecen los estándares y convecciones para los lenguajes ensambladores, lo que facilita la portabilidad del código entre diferentes sistemas informáticos, haciéndolos escalables.
-
Surgen las herramientas de desarrollo más sofisticadas, como los ensambladores de dos pasadas y depuradores interactivos.
-
Aparecen ensambladores más avanzados con características como la generación automática de código y la optimización del rendimiento, se introduce el concepto de x86, tomando las bases de 8086 con administración de 256 registros.
-
Donald Knuth publica "The art of computer programming", un conjunto de libros fundamentales que incluyen discusión muy detallada sobre la programación en ensamblador, asi como los primeros registros, AX, CX y DX.
-
Aplican los lenguajes ensambladores a los microprocesadores, para desarrollar sistemas embebidos y de bajo nivel.
-
Intel lanza el lenguaje de programación assembly x86, que se convierte en uno de los lenguajes ensambladores más utilizados en la industria de la computación, aplicado a micro-controladores de buses de 2 vías.
-
El uso del lenguaje ensamblador es de bajo nivel, es decir se habla directamente con la máquina, esto no detuvo su evolución y paso de bajo a medio nivel, conocido por ensamblador de objeto-C, o por su nombre de mercado C
-
Con la salida de C, siendo lenguaje de nivel medio, y mejorando la eficiencia de los ensambladores, aún tenia margen de mejora, y surgió C++, pasado a alto nivel, pero conservando la cualidad de hablar directamente con la máquina pero usando lenguaje similar al humano, C++ es el ensamblador mas potente conocido, capaz de usar paralelismo entre micro-controladores.
-
Con el surgimiento de C++, se desarrollaron herramientas de ensamblaje integradas (IDE), lo que simplifica el desarrollo en ensamblador y proporcionan funciones avanzadas, capaz de manejar millones de registros en ms, usando el potente lenguaje C++, herramientas con UI programadas en MicroPython.
-
Se publica "Programming from the Ground Up" de Jonathan Bartlett, libro que enseña a programar en ensamblador de alto nivel (C++) para sistemas basados en Linux, núcleo (Kernel) posteriomente usado por OS modernos.
-
A medida que los procesadores se vuelven más potentes, los lenguajes ensambladores deben avanzar a medida de los procesadores, y ensamblador dejo de ser de bajo nivel para evolucionar a alto nivel, MicroPython combina la simplicidad de Python con ensamblador.
-
Para el desarrollo de software embebido en dispositivos ARM, se utilizan varios ensambladores que admiten la arquitectura ARM, como ARM Compiler y GNU ARM Assembler.
-
Ensambladores modernos para sistemas moderno, que usan arquitectura de 32 y 64 bits.
-
NASM es un popular ensamblador para plataformas x86 y x86-64. Se utiliza ampliamente en el desarrollo de sistemas operativos, firmware, y aplicaciones de bajo nivel en entornos basados en Intel.
-
MASM es un ensamblador desarrollado por Microsoft para plataformas x86. Es especialmente popular entre los desarrolladores que trabajan en el ecosistema de Windows y aplicaciones específicas de Microsoft.
-
YASM es un ensamblador de propósito general que admite múltiples arquitecturas de CPU, incluyendo x86 y x86-64. Se destaca por su rendimiento y características avanzadas.
-
GAS es el ensamblador estándar del proyecto GNU y se utiliza en sistemas basados en Unix y Linux. Es compatible con múltiples arquitecturas de CPU, incluyendo x86, ARM, MIPS, y otras.