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 :D

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

Sign In or Register to comment.