Linguaggio assembly: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m fix tecnico
mNessun oggetto della modifica
Riga 213:
'''Il ciclo a controllo in coda (do...while)'''
 
L'iterazione è una struttura che permette di ripetere più volte un'istruzione sotto il controllo di una condizione.''
ripeti
istruzioni
finché condizione
''in assembly, attraverso la logica dei salti, viene rappresentato così:''
inizio_ciclo:
istruzioni
Jcondizione inizio_ciclo
''esempio:''
MOV AX, 0000h
inizio_ciclo:
Riga 243:
'''Il ciclo a controllo in testa (while)'''
 
Una struttura iterativa a controllo in testa si può descrivere, ad alto livello, così:''
mentre condizione
istruzioni
Riga 253:
JMP inizio_ciclo
fine_ciclo
''esempio:''
inizio_ciclo:
CMP AX,0Ah ;confronta AX con 10d
Riga 301:
* servizio 4Ch ==> Servizio di ritorno al sistema operativo. Consente di terminare il programma.
 
''Quindi, per acquisire un carattere (con eco sul video):''
MOV AH, 01h ; servizio 01h
INT 21h ; se AX=0001h, allora in AL va il codice ASCII del tasto premuto
''E volendo poi stamparlo:''
MOV DL,AL ; copio il codice ASCII del tasto letto il DL
MOV AH,02h ; servizio 02h
INT 21h ; se AX=0002h, allora stampa il carattere di codice ASCII in D
''Come si può vedere, sia le operazioni di acquisizione che di stampa fanno rifemento ai codici di carattere ASCII. Nel caso si voglia leggere in input una cifra numerica, per risalire al valore numerico basta sottrarre il valore 30h (48 in decimale) al suo codice ASCII. Infatti 30h in ASCII corrisponde al carattere "0", 31h (49 in decimale) all'"1" e così via...''
 
Nel caso in cui si voglia stampare una stringa: