Schema a due file
Fa parte della sezione Fondamenti del percorso Assembly di Coddy. Lezione 5 di 45.
Durante tutto questo corso, scriverai ogni programma usando due file separati:
| File | Scopo |
|---|---|
data.asm | Contiene tutti i dati (stringhe, numeri, variabili) |
main.asm | Contiene tutto il codice (istruzioni, logica, flusso) |
Questo non è richiesto dall'assemblatore. Potresti mettere tutto in un unico file. Ma separare il codice dai dati rende i tuoi programmi più ordinati, più facili da leggere e più facili da sottoporre a debug.
Perché due file?
- Organizzazione: I dati e il codice hanno scopi diversi. Tenerli separati ti aiuta a ragionare con chiarezza.
- Riutilizzabilità: Puoi usare lo stesso
data.asmcon diversi filemain.asm.
- Leggibilità: Non devi mai scorrere lunghe stringhe per trovare il tuo codice.
- Prassi del settore: I progetti reali separano il codice dai dati (anche se spesso in modi più complessi).
Come funziona:
Il file main.asm include il file data.asm usando la direttiva %include. Questo dice all'assemblatore: "inserisci qui l'intero contenuto di data.asm prima dell'assemblaggio."
I due file affiancati:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (qui vanno le variabili) | section .text |
global _start | |
_start: | |
| (qui vanno le istruzioni) |
A cosa serve ogni sezione:
| Sezione | Scopo | Quale file? |
|---|---|---|
section .data | Contiene i dati presenti in memoria durante l'esecuzione del programma | data.asm |
section .text | Contiene le istruzioni eseguibili (codice) | main.asm |
global _start | Rende il punto di ingresso visibile al linker | main.asm |
_start: | Etichetta in cui inizia l'esecuzione del programma | main.asm |
Non devi memorizzare
section .data,section .text,global _starto_start:per ora. Approfondiremo ciascuno di questi comandi nelle lezioni successive. Per ora, osserva il quadro generale e comprendi la struttura dei due file.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1La macchina
Che cos’è la CPUMemoriaRegistri vs memoriaCome funzionano le istruzioniSchema a due fileL’architettura x86-642Sistemi 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