Riepilogo: creare data.asm
Fa parte della sezione Fondamenti del percorso Assembly di Coddy. Lezione 30 di 45.
Sfida
Hai imparato diversi modi per definire i dati nella sezione .data:
| Lezione | Cosa hai imparato |
|---|---|
| 3.1 | La sezione .data, dove vanno inseriti i dati |
| 3.2 | db: definire un byte (1 byte) |
| 3.3 | dw: definire una word (2 byte) |
| 3.4 | dd: definire una double word (4 byte) |
| 3.5 | dq: definire una quad word (8 byte) |
| 3.6 | Stringhe con db: creare testo |
| 3.7 | Il simbolo $: calcolare automaticamente la lunghezza delle stringhe |
Ora è il momento di mettere tutto insieme e creare un file data.asm completo.
Cosa creerai in questa sfida:
Un file data.asm che contiene:
- Una stringa con calcolo automatico della lunghezza
- Un valore byte
- Un valore word
- Un valore double word
- Un valore quad word
Tutto organizzato correttamente nella sezione .data.
Esempio di un file <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 5000000000Perché è importante:
Nei prossimi capitoli, userai file data.asm come questo per memorizzare i dati necessari ai tuoi programmi. Il file main.asm includerà il tuo file data.asm e utilizzerà le etichette e le lunghezze che hai definito.
Sfida
Crea un file data.asm completo con quanto segue:
- Una stringa chiamata
welcomecon il valore 'Welcome!' seguito da un carattere di nuova riga (0x0a) - Una costante chiamata
welcomeLenche calcola automaticamente la lunghezza usando$ - welcome - Un byte chiamato
scorecon il valore 99 - Una word chiamata
yearcon il valore 2025 - Una double word chiamata
populationcon il valore 8500000 - Una quad word chiamata
starscon il valore 100000000000
Tutto all'interno della sezione .data.
Provalo tu
%include "data.asm"
section .text
global _start
_start:
; Stampa la stringa di benvenuto
mov rax, 1
mov rdi, 1
mov rsi, welcome
mov rdx, welcomeLen
syscall
; Esci
mov rax, 60
mov rdi, 0
syscallTutte le lezioni di Fondamenti
1La macchina
Che cos’è la CPUMemoriaRegistri vs memoriaCome funzionano le istruzioniSchema a due fileL’architettura x86-644Definizione dei dati
La sezione .datadb - Definire un bytedw - Definire una worddd - Definire una double worddq - Definire una quad wordStringhe con dbIl simbolo $Riepilogo: creare data.asm2Sistemi numerici
Perché il binario?Numeri binariDa decimale a binarioPerché l'esadecimale?Da esadecimale a decimaleDa decimale a esadecimaleASCII ed esadecimale5Chiamata di sistema di uscita
Cos'è una chiamata di sistema?Chiamata di sistema di uscita (60)Codici di uscitaRiepilogo: uscita correttaEsercitati da solo: Playground Assembly