Patrón de dos archivos
Parte de la sección Fundamentos del Journey de Assembly de Coddy. Lección 5 de 45.
Durante todo este curso, escribirás cada programa utilizando dos archivos separados:
| Archivo | Propósito |
|---|---|
data.asm | Almacena todos los datos (cadenas, números, variables) |
main.asm | Almacena todo el código (instrucciones, lógica, flujo) |
Esto no es obligatorio para el ensamblador. Podrías ponerlo todo en un solo archivo. Pero separar el código de los datos hace que tus programas sean más limpios, fáciles de leer y fáciles de depurar.
¿Por qué dos archivos?
- Organización: Los datos y el código tienen propósitos diferentes. Mantenerlos separados te ayuda a pensar con claridad.
- Reutilización: Puedes usar el mismo
data.asmcon diferentes archivosmain.asm.
- Legibilidad: Nunca tienes que desplazarte por cadenas largas para encontrar tu código.
- Práctica del sector: Los proyectos reales separan el código y los datos (aunque a menudo de formas más complejas).
Cómo funciona:
El archivo main.asm incluye el archivo data.asm mediante la directiva %include. Esto le indica al ensamblador: «inserta aquí todo el contenido de data.asm antes de ensamblar».
Los dos archivos uno al lado del otro:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (las variables van aquí) | section .text |
global _start | |
_start: | |
| (las instrucciones van aquí) |
Qué hace cada sección:
| Sección | Propósito | ¿Qué archivo? |
|---|---|---|
section .data | Contiene los datos que existen en la memoria cuando se ejecuta el programa | data.asm |
section .text | Contiene las instrucciones ejecutables (código) | main.asm |
global _start | Hace visible el punto de entrada para el enlazador | main.asm |
_start: | Etiqueta donde comienza la ejecución del programa | main.asm |
No necesitas memorizar
section .data,section .text,global _startni_start:por ahora. Explicaremos cada uno de estos comandos en detalle en las lecciones siguientes. Por ahora, observa el panorama general y comprende la estructura de los dos archivos.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1La máquina
¿Qué es la CPU?MemoriaRegistros vs. MemoriaCómo funcionan las instruccionesPatrón de dos archivosLa arquitectura x86-64Practica por tu cuenta: Playground de Assembly