[X86] Input di 2 cifre

di il
1 risposte

[X86] Input di 2 cifre

Ciao a tutti, avrei un problema.
Il mio programma dovrebbe prendere in input un numero di 2 cifre.
In teoria dovrebbe prendere in input il primo numero, moltiplicarlo per 10 e aggiungere il secondo numero, così ottengo il numero a 2 cifre tramite 2 input di numeri a una cifra. Ora il numero è in ascii, allora lo divido per 10 e ottengo in AL la prima cifra e in AH la seconda cifra... Converto entrambe le due cifre in ascii e le stampo, ma qualcosa deve essere andato storto xD
Ecco il source:



mov bl,10d ; metto in bl il valore 10 da moltiplicare al primo numero
mov ah,1
int 21h
sub al,'0'   ; converto il primo numero in decimale
mul bl  
mov bx,ax ; metto il numero ottenuto in bx
mov ah,1
int 21h  
sub al,'0'
add [bx],al  ; sommo al primo numero presente in bx il secondo
mov ax,bx 
     mov bl,10d ; metto in bl il numero da dividere
     div bl
     mov bh,ah ; muovo le 2 cifre in bh e bl
     mov bl,al 
     sub bl,'0'  ; converto i 2 numeri
     sub bh,'0'
mov dl,bl  
mov ah,2
int 21h  
mov dl,bh
mov ah,2
int 21h 




1 Risposte

  • Re: [X86] Input di 2 cifre

    Add [bx],al ; sommo al primo numero presente in bx il secondo
    questa riga e sbagliata per 2 motivi:
    1) cosi come è sommi al alla locazione di memoria indicizzata da bx
    2) non puoi sommare un registro a 16 bit con uno a 8
Devi accedere o registrarti per scrivere nel forum
1 risposte