
che permette con un click di scaricare il listato.msg1 db "Ciao a tutti." ; stringa messaggio Lmsg1 $-msg1 ; calcolo Lunghezza stringa messaggio
buf1 resb 256 ; spazio/blocco di 256 byte di memoria RAM
Dovendo ripetutamente compilare i sorgenti nasm è certamente noioso ridigitare continuamente le appropriate righe di comando, come visto in questa parte introduttiva di nasm. Per le esercitazioni correnti conviene utilizzare lo script a che serve ad eseguire, in successione, le operazioni di: compilazione, link, esecuzione. Lo script, inoltre, pur dessendo dedicato a semplici applicazioni didattiche, gestisce automaticamente le varie situazioni che si presentano nel corso dello sviluppo di software asm linux. Lo trovate nel DVD che vi ho distribuito e nelle installazioni Linux di laboratorio, ma non è uno strumento presente nelle normali distribuzioni Linux.
Ecco come si usa lo script:
In caso di segnalazione d'errore occorre intervenire modificando opportunamente il listato di prova.asm, salvando e ripetendo il comando precedente.
Non disponendo dello script a è possibile scaricarlo da Internet, e renderlo poi utilizzabile con qualche passaggio aggiuntivo. Ad esempio, per scaricare lo script a nella propria cartella di lavoro esercizi-nasm basta eseguire i comandi seguenti:
A questo punto per eseguire il ciclo di operazioni compilazione-link-esecuzione, per un generico programma nome.asm, basterà digitare una delle seguenti 2 righe di comando:
La prima riga va usata se il sorgente non contiene chiamate a funzioni di libreria gcc, cioè è scritto in puro assembly. La seconda riga va usata se il listato contiene riferimenti a funzioni gcc. I caratteri ./ anteposti ad a sono indispensabili per obbligare il sistema operativo a cercare il comando nella propria cartella di lavoro esercizi-nasm, anzichè nelle normali cartelle di sistema.
Se si dispone dei diritti di amministrazione è opportuno copiare il file a nella cartella /usr/local/bin evitando, così, la noia di dover premettere tutte le volte i caratteri ./, rendendo di fatto a uno dei normali comandi di sistema. Questo è quanto accade nel DVD che vi ho distribuito e nei computer del laboratorio.
Lo script può essere, ovviamente, migliorato ed esteso a situazioni più complesse, qui trovi il listato di a .
;---------------------------------------- Sezione Dati Inizializzati
section .data
msg1 db "ABCD" ; stringa espressa tutta con normali caratteri
msg1bis db 'ABCD' ; la stessa stringa precedente racchiusa da apici semplici
msg1ter db 41h,01000010b,'C',"D" ; la stessa stringa espressa in esadecimale, binario e caratteri
msg2 db "ABCD",0Dh,0Ah ; stringa mista, composta da caratteri e codici ASCII esadecimali
msg2bis db 41h,42h,43h,44h,0Dh,0Ah ; la stessa stringa espressa solo con codici ASCII hex
msg2ter db 65,66,67,68,13,10 ; la stessa stringa espressa solo con codici ASCII dec
msg3 times 64 db "x" ; Genera automaticamente una stringa di 64 caratteri "x"
msg3bis times 65 db 0 ; Questa volta la stringa contiene 64 codici 0
;--------------------------------------- Sezione Definizione Costanti
%define BUFLEN 100
;---------------------------------------- Sezione Dati NON Inizializzati
section .bss
buf1 resb 256 ; riserva un blocco di 256 byte
buf2 resb BUFLEN ; riserva un blocco di 100 byte

Menù

Quando va il mio pensiero verso di te, si profuma
Sotto i tuoi piedi nudi sta il bianco della spuma,
sulle tue labbra ride la letizia del mondo.
R. DarÃo