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 text
3.7O símbolo $: calculando os comprimentos de strings de forma automaticamente

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

O que você criará neste desafio:

Um arquivo data.asm que contém:

  • Uma string com cálculo de comprimento automatic
  • Um valor byte
  • Um valor word
  • Um valor double word
  • Um valor 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 de 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!' seguido por uma newline (0x0a)
  2. Uma constant chamada welcomeLen que calcula o length automaticamente usando $ - welcome
  3. Um byte chamado score com o valor 99
  4. Um word chamado year com o valor 2025
  5. Um double word chamado population com o valor 8500000
  6. Um quad word chamado 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

Pratique por conta própria: Playground de Assembly