Resumen: Construir data.asm
Parte de la sección Fundamentos del Journey de Assembly de Coddy — lección 30 de 45.
Desafío
Has aprendido varias formas de definir datos en la sección .data:
| Lección | Lo que aprendiste |
|---|---|
| 3.1 | La sección .data — donde van los datos |
| 3.2 | db — Define Byte (1 byte) |
| 3.3 | dw — Define Word (2 bytes) |
| 3.4 | dd — Define Double Word (4 bytes) |
| 3.5 | dq — Define Quad Word (8 bytes) |
| 3.6 | Cadenas con db — creando texto |
| 3.7 | El símbolo $ — calculando longitudes de cadena automáticamente |
Ahora es el momento de juntar todo y construir un archivo data.asm completo.
Lo que crearás en este desafío:
Un archivo data.asm que contiene:
- Una cadena con cálculo de longitud automático
- Un valor de tipo byte
- Un valor de tipo word
- Un valor de tipo double word
- Un valor de tipo quad word
Todo debidamente organizado en la sección .data.
Ejemplo de un <strong>data.asm</strong> completo:
section .data
; String with automatic length
msg db 'Hello', 0x0a
msgLen equ $ - msg
; Numbers of different sizes
smallNum db 100
mediumNum dw 5000
largeNum dd 100000
veryLarge dq 5000000000Por qué esto es importante:
En los próximos capítulos, utilizarás archivos data.asm como este para almacenar los datos que tus programas necesitan. El archivo main.asm incluirá tu data.asm y utilizará las etiquetas y longitudes que hayas definido.
Desafío
Crea un archivo data.asm completo con lo siguiente:
- Una cadena llamada
welcomecon el valor 'Welcome!' seguida de una nueva línea (0x0a) - Una constante llamada
welcomeLenque calcule la longitud automáticamente usando$ - welcome - Un byte llamado
scorecon el valor 99 - Un word llamado
yearcon el valor 2025 - Un double word llamado
populationcon el valor 8500000 - Un quad word llamado
starscon el valor 100000000000
Todo dentro de la sección .data.
Pruébalo tú mismo
%include "data.asm"
section .text
global _start
_start:
; Imprimir la cadena de bienvenida
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; Salir
mov rax, 60
mov rdi, 0
syscallTodas las lecciones de Fundamentos
1La máquina
¿Qué es la CPU?MemoriaRegistros vs. MemoriaCómo funcionan las instruccionesPatrón de dos archivosLa arquitectura x86-644Definición de datos
La sección .datadb - Definir Bytedw - Definir Worddd - Definir Double Worddq - Definir Quad WordCadenas con dbEl símbolo $Resumen: Construir data.asm