Ciao a tutti,
Ho da poco iniziato la pratica con gli interrupt del DOS e mi sono imbattuto in un problema: la stampa dei numeri.
Precisamente al momento quelli a 2 cifre...visto che stampa un carattere alla volta e si basa su ASCII ho fatto in questo modo:
codice:
CPU 386
SEGMENT STACKSEGM ALIGN=16 STACK USE16 CLASS=STACK
SEGMENT DATASEGM ALIGN=16 PUBLIC USE16 CLASS=DATA
numero dw 93
SEGMENT CODESEGM ALIGN=16 PUBLIC USE16 CLASS=CODE
..start:
mov ax, DATASEGM
mov ds, ax
mov ax, [numero]
mov dh, 16h
div dh
add al, 30h
mov dl, al
mov ah, 02h
int 21h
add ah, 30h
mov dl, ah
mov ah, 02h
int 21h
mov ah, 4Ch
mov al, 00h
int 21h
Cioè, prendo il numero, lo divido per 10..e sommo sia alla prima cifra che alla seconda il numero 30h (così dovrei avere il carattere corrispondente). Il problema è che la stampa è errata, non mostra i numeri esatti.
Se l'ora non mi gioca brutti scherzi controllo i registri giusti...
Grazie a tutti ^^
Ciao,
Patrick Jane