Sono con il TASM.
Nel mio programma vorrei stampare una stringa ad ogni riga, e ad ogni stampa vorrei che si spostasse a destra di un tab.
Ho scritto il codice seguente, ma l'allineamento è sbagliato
codice:
.MODEL tiny
.STACK
.DATA
var1 db 5
var2 db 10
var3 db 1
messaggio db "Hello world",13,10, "$"
tab db " ", 9
.CODE
inizio:
MOV ax, @data
MOV ds, ax
MOV bl, var1
MOV cl, var3
JMP subito
ciclo:
howmanytabs:
LEA dx, tab
MOV ah, 09H
INT 21H
SUB cl, 1
CMP cl,0
JG howmanytabs
subito:
LEA dx, messaggio
MOV ah, 09H ; stampa di stringhe
INT 21H ; richiedo il servizio
ADD bl, 1 ; incremento il contatore
CMP bl, var2 ; confronto il contatore con var2
JNGE ciclo ; salta (cioè cicla) fino a che il contatore è minore di var2
fine:
MOV ah, 4ch
INT 21h
END inizio
Dov'ho sbagliato?