Why, in the age of AI and Python, we still need to understand code close to machine language. Por qué, en la era de la IA y Python, seguimos necesitando entender código cercano al lenguaje máquina.
Santi Scagliusi, PhD
"Most modern firmware is written in C or C++." "La mayoría del firmware moderno se escribe en C o C++."
In 2026, compilers are incredibly smart. Writing an entire application in Assembly is usually inefficient, risky, and hard to maintain. En 2026, los compiladores son increíblemente inteligentes. Escribir una aplicación entera en Assembly suele ser ineficiente, arriesgado y difícil de mantener.
You cannot truly understand how a CPU works until you've manually moved data between registers. Assembly is the blueprint of the processor. No puedes entender realmente cómo funciona una CPU hasta que hayas movido datos manualmente entre registros. El Assembly es el plano del procesador.
When C code looks correct but hardware behaves weirdly, the Disassembly reveals the truth. Cuando el código C parece correcto pero el hardware se comporta de forma extraña, el Desensamblado revela la verdad.
Example: You mistakenly used a 16-bit write for what you thought was a single 8-bit GPIO register. Ejemplo: Usaste por error una escritura de 16 bits para lo que creías que era un único registro GPIO de 8 bits.
Sometimes, you need to reason about code at the level of individual clock cycles. Assembly gives you direct visibility and much tighter control, although the final timing still depends on the concrete device, clocking, and memory system. A veces, necesitas razonar sobre el código al nivel de ciclos de reloj individuales. El Assembly te da visibilidad directa y un control mucho más fino, aunque la temporización final sigue dependiendo del dispositivo concreto, del reloj y del sistema de memoria.
Now that you know why it matters, let's see where it comes from.Ahora que sabes por qué importa, veamos de dónde viene.
Before Assembly, engineers had to program physically or via raw binary. Imagine trying to debug a sequence of 1s and 0s. Antes del Assembly, los ingenieros tenían que programar físicamente o mediante binario crudo. Imagina intentar depurar una secuencia de 1s y 0s.
▲ This program adds 5 + 3 and stores the result. Seven lines just for that! ▲ Este programa suma 5 + 3 y almacena el resultado. ¡Siete líneas solo para eso!
At its core, Assembly is a near 1:1 symbolic representation of machine instructions for a specific ISA, although assemblers also add labels, directives, and convenience instructions. En su núcleo, el Assembly es una representación simbólica casi 1:1 de las instrucciones máquina de una ISA concreta, aunque los ensambladores también añaden etiquetas, directivas e instrucciones de conveniencia.
Understanding Abstraction LevelsComprendiendo los Niveles de Abstracción
"Make me a cake."
(You don't care how)
"Hazme un pastel."
(No te importa cómo)
"Mix flour and sugar."
(Standard recipe)
"Mezcla harina y azúcar."
(Receta estándar)
"Move your left arm 30 degrees. Grasp spoon."
(Total control)
"Mueve tu brazo izquierdo 30 grados. Agarra la cuchara."
(Control total)
You've seen the code. Now see how the "Brain" executes it step-by-step. Has visto el código. Ahora observa cómo el "Cerebro" lo ejecuta paso a paso.
A brain in a jar is useless. The CPU needs to store memories (RAM/FRAM) and touch the world (I/O). Un cerebro en un frasco es inútil. La CPU necesita almacenar memorias (RAM/FRAM) e interactuar con el mundo (E/S).
In high-level languages, you talk to "objects" or "files". In Embedded Systems, many critical hardware resources are exposed through addresses and registers. En lenguajes de alto nivel, hablas con "objetos" o "archivos". En Sistemas Embebidos, muchos recursos hardware críticos se exponen mediante direcciones y registros.
At the hardware boundary, turning on a light means writing a 1 into the register bit that controls that pin. If the pin is configured as a GPIO output, that write becomes a voltage on the outside world. En la frontera con el hardware, encender una luz significa escribir un 1 en el bit del registro que controla ese pin. Si el pin está configurado como salida GPIO, esa escritura se convierte en un voltaje hacia el mundo exterior.
This is the essence of low-level bare-metal programming. You are not relying on an operating system abstraction here; you are writing hardware control bits directly. Try it. Esta es la esencia de la programación bare-metal de bajo nivel. Aquí no dependes de una abstracción de sistema operativo; estás escribiendo directamente bits de control hardware. Pruébalo.
For simplicity, this demo assumes the relevant pins are already configured as outputs. Para simplificar, esta demo asume que los pines relevantes ya están configurados como salidas.
You now understand the philosophy behind Assembly: explicit control over the CPU (Brain) and direct access to hardware registers (Body). Ahora comprendes la filosofía detrás del Assembly: control explícito sobre la CPU (Cerebro) y acceso directo a los registros hardware (Cuerpo).
Why we still need low-level languages in 2026.Por qué seguimos necesitando lenguajes de bajo nivel en 2026.
From ENIAC to modern code: the layers between you and the hardware.Del ENIAC al código moderno: las capas entre tú y el hardware.
A hands-on preview of the CPU simulator and I/O hardware.Una vista previa práctica del simulador de CPU y el hardware de E/S.
Now that you know why, let's understand what. In the next module, we'll cover the foundations: digital logic, embedded systems, memory architectures, and RISC vs CISC — everything you need before writing your first instruction. Ahora que sabes por qué, entendamos qué. En el próximo módulo cubriremos los fundamentos: lógica digital, sistemas embebidos, arquitecturas de memoria y RISC vs CISC — todo lo necesario antes de escribir tu primera instrucción.
Start Module 1Comenzar Módulo 1 arrow_forward