Contare i multipli di tre
Contare i multipli di tre in una stringa data in input
org 100h
stampa MACRO var
mov dx, offset var
mov ah, 9
int 21h
ENDM
stampa msg
mov dx, offset stringa
mov ah, 0ah
int 21h
mov ch, 0
mov cl, stringa[1]
mov si, 2
ciclo:
sub stringa[si], '0'
mov ah, 0
mov al, 0
mov al, stringa[si]
mov bl, 3
div bl
cmp ah, 0
je multiplo
jmp continua
multiplo:
inc conto
continua: inc si
loop ciclo
mov al, 0
mov al, stringa[1]
sub al, conto
cmp al, conto
je uguale
jb maggiore
ja minore
jmp fine
uguale:
stampa capo
stampa msg2
jmp fine
maggiore:
stampa capo
stampa msg3
jmp fine
minore:
stampa capo
stampa msg4
fine: ret
max equ 20
stringa db max+1, ?, max+1 dup("$")
conto db 0
msg db "input stringa massimo 20 caratteri $"
msg2 db "Il numero di multipli e non multipli di 3 e' uguale $"
msg3 db "Il numero di multipli e' maggiore $"
msg4 db "Il numero di multipli e' minore $"
capo db 10,13,"$"
