Ripetizione delle "a" in una stringa
Scrivere un programma che legga una stringa in input (max 10 caratteri) e conti il numero delle "a" presenti nella stringa
#MAKE_COM#
org 100h
jmp start
;dichiarazione variabili e macro
inserire db "Inserire una stringa di max 10 cifre ->$"
nessuna db "La stringa non contiene alcun carattere uguale ad 'a' $"
msg1 db "La stringa contiene $"
msg2 db " caratteri uguali ad 'a'$"
acapo db 10,13,"$"
stringa db 11, ?, 11 dup ("$")
num db 0
stampa macro messaggio
lea dx, messaggio
mov ah, 09h
int 21h
endm
stampacarattere macro num
mov ah, 2
mov dl, num
int 21h
endm
leggi macro caratteri
lea dx,caratteri
mov ah, 0Ah
int 21h
endm
start:
stampa inserire
leggi stringa
mov ax,0
mov ch,0
mov cl,stringa [1] ;stringa[1]= numero di caratteri effettivamente digitati da tastiera
mov si, 2
ciclo:
cmp stringa [si],"a"
je incrementa:
jmp ripeti
incrementa:
inc ah
ripeti:
inc si
loop ciclo
mov num, ah
cmp num, 0
je nessuna_a
mov ah,"0"
add num, ah ; converto il valore memorizzato nella variabile numero a in codice ascii per poterlo stampare a video
stampa acapo
stampa msg1
stampacarattere num
stampa msg2
jmp fine
nessuna_a:
stampa acapo
stampa nessuna
fine:
ret
