Recapitulação: Build data.asm
Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 30 de 45.
Desafio
Você aprendeu várias maneiras de definir dados na seção .data:
| Lição | O que você aprendeu |
|---|---|
| 3.1 | A seção .data — onde os dados ficam |
| 3.2 | db — Define Byte (1 byte) |
| 3.3 | dw — Define Word (2 bytes) |
| 3.4 | dd — Define Double Word (4 bytes) |
| 3.5 | dq — Define Quad Word (8 bytes) |
| 3.6 | Strings com db — criando texto |
| 3.7 | O 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 5000000000Por 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:
- Uma string chamada
welcomecom o valor 'Welcome!' seguida por uma nova linha (0x0a) - Uma constante chamada
welcomeLenque calcula o comprimento automaticamente usando$ - welcome - Um byte chamado
scorecom o valor 99 - Uma word chamada
yearcom o valor 2025 - Uma double word chamada
populationcom o valor 8500000 - Uma quad word chamada
starscom 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
syscallTodas as lições de Fundamentos
1A Máquina
O que é CPUMemóriaRegistradores vs MemóriaComo as instruções funcionamPadrão de Dois ArquivosA Arquitetura x86-644Definição de Dados
A Seção .datadb - Definir Bytedw - Definir Worddd - Definir Double Worddq - Definir Quad WordStrings com dbO Símbolo $Recapitulação: Build data.asm