Hello world!


Siamo finalmente giunti al primo programma!
Comincio con il listato completo, dopo lo commento linea per linea:

.model small
.stack 100h
.data
messaggio db 'Hello world',13,10,'$'
.code
start:
mov ax,seg messaggio
mov ds,ax
mov dx,offset messaggio
mov ah,09h
int 21h
mov ah,04ch
int 21h
end start


Bene, bene cominciamo:

.model smallIndica al compilatore che modello di memoria usare
.stack 100hPreciso quanta memoria intendo riservare allo stack
.dataIndica al compilatore che inizia il segmento dati
messaggio db 'Hello world',13,10,'$'La stringa che voglio scrivere
.codeIndica che sta iniziando il segmento del codice
start:Etichetta che indica l'inizio delle istruzioni ( usate la parola che volete)
mov ax,seg messaggioMette in ax il segmento della variabile messaggio
mov ds,axMette nel Data-Segment (ds) il valore di ax
mov dx,offset messaggioMette in dx l'offset di messaggio
mov ah,09hCosa fa è chiaro, e lo fa per chiamare la funzione successiva
int 21hChiama un Interrupt del Dos, con l'argomento contenuto in ah, per scrivere a schermo
mov ah,04chCome prima
int 21h Questa volta l'int termina il programma
end startUltima istruzione del prg, indica al compilatore da dove iniziare ad eseguire le istruzioni


Precisazioni utili

messaggio db 'stringa che vuoi tu',13,10,'$' :

messaggio è il nome della variabile
db sta per Define Byte cioè quanta memoria usa la variabile
13 è il CR (a capo)
10 è il LF (fine della linea)
'$' è il terminatore che deve essere sempre presente alla fine di una stringa



Scrivete il prg con un qualsiasi editor di testo, salvate, quindi con l'estensione ASM
Compilate con Tasm e linkate con Tlink

Vi consiglio caldamente questi programmi perchè sono free e molto affidabili, sconsiglio, invece, il Masm!

Scarica sorgente ed eseguibile del programma "Hello world"

Stay tuned!


Coding center

Assembly language

Back to home