09/05/09 20:23
Xaratroom
Il seguente codice:
Carica in AL il valore della variabile numero.
Azzera AH.
Inserisce in CL il valore 10d.
Divide AX/CL inserisce quoziente in AH e resto in AL.
Addiziona ad ah e al il valore 30h.
Salva il contenuto di AL nella variabile num.
Muove in DL il valore contenuto da AH.
Chiama il servizio 2 dell'interruzione del dos 21h (stampa DL).
Muove in DL il valore della variabile num.
Chiama il servizio 2 dell'interruzione del dos 21h (stampa DL).
Ora però immagino tu stia lavorando con un vettore (di byte), il cui indirizzo è contenuto in BX.
IL codice per stampare tutto il vettore (fino ad un elemento nullo) sarà il seguente:
Naturalmente può essere ottimizzato, ma questo è tuo compito
mov al, numero mov ah,00 mov cl,10d div cl add ax,3030h mov num,al mov dl,ah mov ah,02h int 21h mov dl,num mov ah,02h int 21h
Carica in AL il valore della variabile numero.
Azzera AH.
Inserisce in CL il valore 10d.
Divide AX/CL inserisce quoziente in AH e resto in AL.
Addiziona ad ah e al il valore 30h.
Salva il contenuto di AL nella variabile num.
Muove in DL il valore contenuto da AH.
Chiama il servizio 2 dell'interruzione del dos 21h (stampa DL).
Muove in DL il valore della variabile num.
Chiama il servizio 2 dell'interruzione del dos 21h (stampa DL).
Ora però immagino tu stia lavorando con un vettore (di byte), il cui indirizzo è contenuto in BX.
IL codice per stampare tutto il vettore (fino ad un elemento nullo) sarà il seguente:
mov si,0 ciclo: mov al,byte ptr[bx+si] cmp al,0 jz fine mov ah,00 mov cl,10d div cl mov num,al mov dl,ah add dl,30h mov ah,02h int 21h mov dl,num add dl,30h mov ah,02h int 21h inc si jmp ciclo fine:
Naturalmente può essere ottimizzato, ma questo è tuo compito
aaa