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 text |
| 3.7 | O 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 5000000000Por 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:
- Uma string chamada
welcomecom o valor 'Welcome!' seguido por uma newline (0x0a) - Uma constant chamada
welcomeLenque calcula o length automaticamente usando$ - welcome - Um byte chamado
scorecom o valor 99 - Um word chamado
yearcom o valor 2025 - Um double word chamado
populationcom o valor 8500000 - Um quad word chamado
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.asmPratique por conta própria: Playground de Assembly