Questo sito ha bisogno della pubblicità per poter essere mantenuto. Gentilmente disabilita il blocco della pubblicità nel tuo browser per questo sito web.
Caricamento in corso...Caricamento in corso...
Caricamento in corso...

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,"$"