Menu
CoddyTech

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: definir um byte (1 byte)
3.3dw: definir uma palavra (2 bytes)
3.4dd: definir uma palavra dupla (4 bytes)
3.5dq: definir uma palavra quádrupla (8 bytes)
3.6Strings com db: criando texto
3.7O símbolo $: calculando automaticamente o tamanho das strings

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

O que você vai criar neste desafio:

Um arquivo data.asm que contém:

  • Uma string com cálculo automático do tamanho
  • Um valor de byte
  • Um valor de palavra
  • Um valor de palavra dupla
  • Um valor de palavra quádrupla

Tudo organizado corretamente na seção .data.

Exemplo de um arquivo data.asm 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 tamanhos que você definiu.

Desafio

Crie um arquivo data.asm completo com o seguinte:

  1. Uma string chamada welcome com o valor 'Welcome!' seguido de uma nova linha (0x0a)
  2. Uma constante chamada welcomeLen que calcula o tamanho automaticamente usando $ - welcome
  3. Um byte chamado score com o valor 99
  4. Uma palavra chamada year com o valor 2025
  5. Uma palavra dupla chamada population com o valor 8500000
  6. Uma palavra quádrupla chamada stars com o valor 100000000000

Tudo dentro da seção .data.

Experimente você mesmo

%include "data.asm"

section .text
    global _start

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

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Assembly