aiutooooooooooooooooo assembly 8086?
stavo facendo un programma in assembly ma mi sono bloccato su un passaggio devo sommare dei numeri in posizione dispari e il problema sorge quando addizionando i numeri si supera il valore 9 perchè essendo esadecimale iniziano i caratteri a b c d e f quindi per mostrarlo a video se addiziono '0'
mi mostra a video simboli strani
qualcuno sa come si fa un'addizione che supera il 9 grazie in anticipo
Comments
sarebbe interessante vedere il pezzo di codice incriminato ma, comunque, ti lascio una traccia che puoi seguire per qualsiasi numero.
mov al,8
add al,5 ; la somma 8 + 5 = 13 quindi AL=13
ovvio che non si può visualizzare AL semplicemente aggiungendo '0' (30h) per trasformarlo in ASCII perchè è necessario visualizzare DUE caratteri ASCII e non uno solo.
il trucco stà nel trovare il valore delle decine e delle unità del numero e per farlo basta dividere per dieci.
mov ah,0 ; metto in AX il dividendo azzerando AH (13)
mov bl,10 ; metto in BL il divisore
div bl ; divide AX per BL, quoziente in AL (le decine), resto in AH (le unità
; ora trasformo AL e AH in caratteri ASCII
add al,'0'
add ah,'0'
; ora posso stampare AL e AH