Piccolo tutorial per Assembly (Masm32) su come fare l’input e l’output di un carattere da tastiera, usando i parametri 1h e 2h dell’interrupt 21h. Lo ricordiamo l’Assembler è un linguaggio di programmazione a basso livello.

; legge un carattere da tastiera e lo stampa a video
.model small ; si parte sempre così...
 
.stack 100h ;è opzionale, e alloca 100 blocchetti di memoria. esadecimali. perchè l'h che segue il numero indica il decimale.
 
.code  ; indica l'inizio del codice.. in generale..
 
start:  ;etichetta start... 
 
mov ah, 1h ;AH è il sottoregistro di AX. parte alta = high. 1h è la funzione dell'interrupt 21h che permette l'input di un carattere con eco.
int 21h ; funzione interrupt che richiama servizi generali del DOS. (21h)
mov dl, al ; copia al in dl perchè l'interrupt 21h salva il carattere ricevuto in al
; in ah si tengono le funzioni (i parametri per gli interrupt), in al i dati.
mov ah, 2h ;mettiamo in ah un altro comando, ovvero 2h che fa l'output a video di un carattere
int 21h ;richiamiamo dunque ancora l'interrupt 21h che segue il comando in ah.
mov ax, 4c00h ;comando per stoppare l'interrupt.
int 21h ;eseguiamo.
 
end start