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:
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.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
Se l'ora non mi gioca brutti scherzi controllo i registri giusti...
Grazie a tutti ^^
Ciao,
Patrick Jane

Rispondi quotando