Menu
Coddy logo textTech

Resumen: Construir data.asm

Parte de la sección Fundamentos del Journey de Assembly de Coddy — lección 30 de 45.

challenge icon

Desafío

Has aprendido varias formas de definir datos en la sección .data:

LecciónLo que aprendiste
3.1La sección .data — donde van los datos
3.2db — Define Byte (1 byte)
3.3dw — Define Word (2 bytes)
3.4dd — Define Double Word (4 bytes)
3.5dq — Define Quad Word (8 bytes)
3.6Cadenas con db — creando texto
3.7El 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 5000000000

Por 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:

  1. Una cadena llamada welcome con el valor 'Welcome!' seguida de una nueva línea (0x0a)
  2. Una constante llamada welcomeLen que calcule la longitud automáticamente usando $ - welcome
  3. Un byte llamado score con el valor 99
  4. Un word llamado year con el valor 2025
  5. Un double word llamado population con el valor 8500000
  6. Un quad word llamado stars con 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
    syscall

Todas las lecciones de Fundamentos