• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Operazione assembly 8086

chack1172

Utente Senior
Autore del topic
27 Aprile 2013
1.538
69
Miglior risposta
1
Salve raga, è una settimana che provo a sistemare il mio programma in assembly 8086 ma non ci riesco. Il programma in questione deve fare la somma di 2 numeri inseriti dall'utente.
Il codice è il seguente:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Il problema è che quanto sottraggo da al 30h, in esso viene salvato 0A per qualsiasi valore inserito. Ad esempio se l'utente inserisci 4 in al viene salvato 34, effettuando la sottrazione il risultato è 0A ma il realtà dovrebbe esse 4
 
Devi fare la differenza tra due numeri inseriti dall'utente, non la somma, giusto? Se riesci a commentare un po' il codice per capire un po' come è il tuo ragionamento nei vari passaggi mi faciliteresti un po' la lettura ;)
 
@ptm deve fare tutto le operazioni, ti ho ridotto il codice alla singola addizione perché il problema lo da con tutte le operazioni.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Il primo problema che ho individuato è che effettivamente non vai a salvare quello che viene letto da input... questo perchè quando esegui la macro "acapo" in al viene ritornato il valore contenuto in dl, perciò in al avrai sempre 0Ah; una volta sottratto 30h ti ritrovi DAh per via del carry. Alla fine della storia i risultati escono tutti costanti. Non ho provato a fare modifiche, ma penso basti cambiare l'ordine delle operazioni per sistemare il tutto, cioè: sottrazione -> spostamento in 'a' -> acapo