Ho fatto in questo modo, compila, ma mi dà 0 come output. :\
dati segment
resto1 db 0h
cifra1 db 0h
cifra2 db 0h
numero db 0h
msg1 db "Inserisci delle cifre (0 per terminare): $"
msg66 db "La somma corrisponde a: $"
msg3 db "Il risulato corrisponde a: $"
dati ends
codice segment
assume cs: codice, ds: dati
inizio:
mov ax, dati
mov ds, ax
mov ax, 0000h
mov bx, 0000h
mov numero, 0h
lea dx, msg1
mov ah, 09h
int 21h
comincia:
call inse
cmp al, 0h
jne comincia
mov bl,dl
mov AH,02h
mov DL,13
int 21h
mov AH,02h
mov DL,10
int 21h
lea dx, msg3
mov ah, 09h
int 21h
mov dl,numero
mov ah, 02h
int 21h ;output ascii
mov ah, 4ch
mov bl,dl
mov AH,02h
mov DL,13
int 21h
mov AH,02h
mov DL,10
int 21h
lea dx, msg66
mov ah, 09h
int 21h
ciao: ;parte modificata
mov al, numero
mov bl,10h
div bl
cmp al,0h
je fineprog
mov al, 30h
mov dl, al
mov ah,02h
int 21h
mov ah, 4ch
mov numero, ah
call ciao
fineprog:
int 21h
inse proc near
mov ah, 01h
int 21h
sub al, 30h
add numero, al
ret
endp
codice ends
end inizio