Passa al contenuto principale
Versione: 2025-26

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.

Informazione a rischio aggiornamento

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.


Lo schema mostra un host Windows 11 (x86), che esegue sia l'editor VS Code che l'ambiente virtuale WSL2 (x86).
All'interno di WSL2, il sistema operativo eseguito è Ubuntu 24.04.
L'editor VS Code è collegato direttamente al sistema virtualizzato: il terminale mostrato nell'editor è di Ubuntu, e non di Windows.

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.

Cartelle: assembler, verilog, dispense. Files: assembler-workspace.code-workspace, verilog-workspace.code-workspace, Istruzioni.txt

Il file assembler-workspace.code-workspace lancerà VS Code, collegandosi alla macchina virtuale WSL e la cartella di lavoro C:/reti_logiche/assembler.

informazioni

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.

Una finestra di VS Code, che riporta 'assembler-workspace (Area di lavoro)' nella barra del titolo, il contenuto della cartella assembler nel pannello a sinistra, e 'WSL: reti-logiche-assembler' in basso a sinistra.

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ì:

Il pannello del terminale di VS Code, con la dicitura 'bash - assembler' in alto a destra.

Ma così:

Il pannello del terminale di VS Code, con la dicitura 'pwsh - assembler' in alto a destra.

Per cambiare shell si può usare il bottone + sulla destra, o lanciare il comando pwsh senza argomenti.

informazioni

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..


Sequenza di comandi: './assembler.ps1 ./test-ambiente.s' assembla il programma di test, './test-ambiente' lo esegue.
Il programma stampa 'Ok.' e termina.