Ambiente di sviluppo
In questo corso, programmeremo assembler per architettura x86, a 32 bit.
Useremo la sintassi GAS (anche nota come AT&T), usando la linea di comando in un sistema Linux.
Utilizzeremo degli script appositi per assemblare, testare e debuggare.
Questi script non fanno che chiamare, semplificandone l'uso, gcc
e gdb
.
Per istruzioni per installare e configurare il proprio ambiente, vedere qui. Qui vedremo più da vicino il sistema utilizzato all'esame, basato su Windows 11 + WSL.
Fino all'A.A. 2024/25, nei laboratori si è utilizzato Windows + WSL come spiegato qui. Ciò è ancora da confermare per l'A.A. 2025/26. Ogni eventuale cambiamento sarà a impatto pratico minimo.
Struttura dell'ambiente
I programmi che scriveremo ed eseguiremo, così come quelli utilizzati per assemblare, gireranno in un terminale Linux.
Nell'ambiente d'esame, si usa un Ubuntu 24.04 virtualizzato tramite WSL su macchina Windows 11. Come editor usiamo Visual Studio Code con l'estensione per lo sviluppo in WSL.

Schema dell'ambiente usato all'esame.
Questo ci permette di mantenere un ambiente grafico moderno mentre si lavora con un terminale Linux virtualizzato.
Lanciare l'ambiente e primo programma
Una volta eseguiti i passi dell'installazione, avremo una cartella C:/reti_logiche
con contenuto come da figura.

Il file assembler-workspace.code-workspace
lancerà VS Code, collegandosi alla macchina virtuale WSL e la cartella di lavoro C:/reti_logiche/assembler
.
Questo file è configurato per l'ambiente Windows + WSL, per automatizzare l'avvio. Se si usa un ambiente diverso, il file andrà modificato di conseguenza.
La finestra VS Code che si aprirà sarà simile alla seguente.

Nell'angolo in basso a sinistra, WSL: reti-logiche-assembler
sta a indicare che l'editor è correttamente connesso alla macchina virtuale (compare una dicitura simile se si usa SSH).
I file e cartelle mostrati nell'immagine sono quelli che ci si deve aspettare dall'ambiente vuoto.
Il file test-ambiente.s
è un semplice programma per verificare che l'ambiente funzioni.
.include "./files/utility.s"
.data
messaggio: .ascii "Ok.\r"
.text
_main:
nop
lea messaggio, %ebx
call outline
ret
Apriamo quindi un terminale in VS Code (Terminale > Nuovo Terminale). Per poter lanciare gli script, il terminale deve essere Powershell, non bash.
Non così:

Ma così:

Per cambiare shell si può usare il bottone +
sulla destra, o lanciare il comando pwsh
senza argomenti.
Se si preferisce, in VS Code si può aprire un terminale anche come tab dell'editor, o spostandolo al lato anziché in basso.
A questo punto possiamo lanciare il comando per assemblare il programma di test.
./assemble.ps1 ./test-ambiente.s
Dovremmo adesso vedere, tra i file, il binario test-ambiente
.
Lo possiamo eseguire con ./test-ambiente
, che dovrebbe stampare Ok.
.
