Menu
Coddy logo textTech

Recapitulação: Build data.asm

Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 30 de 45.

challenge icon

Desafio

Você aprendeu várias maneiras de definir dados na seção .data:

LiçãoO que você aprendeu
3.1A seção .data — onde os dados ficam
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.6Strings com db — criando texto
3.7O símbolo $ — calculando comprimentos de string automaticamente

Agora é hora de juntar tudo e construir um arquivo data.asm completo.

O que você criará neste desafio:

Um arquivo data.asm que contém:

  • Uma string com cálculo automático de comprimento
  • Um valor de byte
  • Um valor de word
  • Um valor de double word
  • Um valor de quad word

Tudo devidamente organizado na seção .data.

Exemplo de um <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 que isso é importante:

Nos próximos capítulos, você usará arquivos data.asm como este para armazenar os dados que seus programas precisam. O arquivo main.asm incluirá seu data.asm e usará os rótulos e comprimentos que você definiu.

Desafio

Crie um arquivo data.asm completo com o seguinte:

  1. Uma string chamada welcome com o valor 'Welcome!' seguida por uma nova linha (0x0a)
  2. Uma constante chamada welcomeLen que calcula o comprimento automaticamente usando $ - welcome
  3. Um byte chamado score com o valor 99
  4. Uma word chamada year com o valor 2025
  5. Uma double word chamada population com o valor 8500000
  6. Uma quad word chamada stars com o valor 100000000000

Tudo dentro da seção .data.

Experimente você mesmo

%include "data.asm"

section .text
    global _start

_start:
    ; Imprime a string de boas-vindas
    mov rax, 1
    mov rdi, 1
    mov rsi, welcome
    mov rdx, welcomeLen
    syscall
    
    ; Sair
    mov rax, 60
    mov rdi, 0
    syscall

Todas as lições de Fundamentos