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: Definir byte (1 byte) |
| 3.3 | dw: Definir palabra (2 bytes) |
| 3.4 | dd: Definir palabra doble (4 bytes) |
| 3.5 | dq: Definir palabra cuádruple (8 bytes) |
| 3.6 | Cadenas con db: crear texto |
| 3.7 | El símbolo $: calcular automáticamente las longitudes de las cadenas |
Ahora es el momento de juntar todo y crear un archivo data.asm completo.
Lo que crearás en este desafío:
Un archivo data.asm que contiene:
- Una cadena con cálculo automático de longitud
- Un valor de byte
- Un valor de palabra
- Un valor de palabra doble
- Un valor de palabra cuádruple
Todo correctamente 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é es importante:
En los próximos capítulos, usarás archivos data.asm como este para almacenar los datos que tus programas necesitan. El archivo main.asm incluirá tu archivo data.asm y usará 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!' seguido de una nueva línea (0x0a) - Una constante llamada
welcomeLenque calcule automáticamente la longitud usando$ - welcome - Un byte llamado
scorecon el valor 99 - Una palabra llamada
yearcon el valor 2025 - Una palabra doble llamada
populationcon el valor 8500000 - Una palabra cuádruple llamada
starscon el valor 100000000000
Todo dentro de la sección .data.
Pruébalo tú mismo
%include "data.asm"
section .text
global _start
_start:
; Imprime la cadena welcome
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.asmPractica por tu cuenta: Playground de Assembly