Oppure

Loading
27/03/09 7:28
kelfen
Da poco sto utilizzando in assembler numeri a 2 cifre...
il fatto è che riesco a caricarli ma non a stamparli a video..

ecco come faccio:


 cic:mov al,byte ptr[bx+si]  
     mov ah,00
     mov cl,10d
     div cl
     mov num,al
     mov dl,ah
     add dl,30h
     mov ah,02h
     int 21h
     cmp num,0
     jnz cic


Se qualcuno riuscisse a correggerlo o a darmi un'altra soluzione possibile gliene sarei molto grato :k:

Ultima modifica effettuata da kelfen 27/03/09 7:32
aaa
09/05/09 20:23
Xaratroom
Il seguente codice:
	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