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: definir um byte (1 byte) |
| 3.3 | dw: definir uma palavra (2 bytes) |
| 3.4 | dd: definir uma palavra dupla (4 bytes) |
| 3.5 | dq: definir uma palavra quádrupla (8 bytes) |
| 3.6 | Strings com db: criando texto |
| 3.7 | O 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 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 tamanhos que você definiu.
Desafio
Crie um arquivo data.asm completo com o seguinte:
- Uma string chamada
welcomecom o valor 'Welcome!' seguido de uma nova linha (0x0a) - Uma constante chamada
welcomeLenque calcula o tamanho automaticamente usando$ - welcome - Um byte chamado
scorecom o valor 99 - Uma palavra chamada
yearcom o valor 2025 - Uma palavra dupla chamada
populationcom o valor 8500000 - Uma palavra quádrupla chamada
starscom 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
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