.MODEL small
.STACK 100h
.DATA
DisplayString DB 13,10 ;coppia ritorno a capo nuova riga (punta all'indirizzo prima della stringa...
StringBuf DB 30 DUP (?) ;30 chars (30 bytes)
DB '$' ;alloca il carattere di fine riga
.CODE
Begin:
mov ax,@data
mov ds,ax ;imposta DS per puntare al segmento dati
mov bx,OFFSET StringBuf ;imposta BX per puntare al buffer
mov ah,1 ;funzione dos di lettura
ReadCharLoop:
int 21h ;legge un carattere dalla tastiera
cmp al,13 ;premuto invio?
jz ReadDone ;termina
mov [bx],al ;salva il tasto in stringbuf
inc bx ;punta all'indirizzo successivo
jmp ReadCharLoop ;riprendi un altro carattere
ReadDone:
mov dx,OFFSET DisplayString
mov ah,9 ;funzione per stampare una stringa
int 21h
mov ah,4ch ;funzione per uscire al dos
int 21h ;esce al dos
END Begin