Inserimento stringa e conteggio numero pari

Visualizzare una stringa di 9 interi positivi a singola cifra inserita direttamente nel codice, e visualizzare anche il numero di numeri pari contenuti in questa stringa.

 

org 100h

;MACRO

    
stampas macro stringa
    lea dx, stringa
    mov ah, 9
    int 21h
endm

stampac macro carattere
    mov dl, carattere
    mov ah, 2
    int 21h
endm

;ISTRUZIONI



mov cl, 9   
mov bl, 2  

mov si, 0  
mov bh, 0     

stampas acapo; 
stampas acapo; 
stampas acapo; 
stampas acapo;
stampas msg1;   
stampas acapo; 
stampas acapo;
 
ciclo:
mov al, valori[si]
mov ah, 0
div bl
cmp ah, 0  
je pari ; se il resto della divisione fra al e bl (2) e' uguale a zero salta a pari per incrementare il contatore pari
jmp fine ;altrimenti salta direttamente a fine senza incrementare il contatore

pari:
inc bh   
         
fine:
mov al, valori[si]; rimetto in AL il valore dell'elemnto del vettore
add al, "0"        ; converto in carattere corrispondente
mov valori[si], al  ; salvo nel vettore  
stampac valori[si]  ; stampo il carattere ottenuto volta per volta nel ciclo
stampas acapo 
inc si; incrementa il valore dell'indice

loop ciclo

stampas acapo; 
stampas acapo; 
stampas acapo; 
stampas acapo;
stampas msg2;     
stampas acapo; 
stampas acapo;
add bh, "0"
stampac bh;


ret


;VARIABILI



valori db 1,2,5,2,4,6,3,8,5
msg1 db "I valori della stringa sono: $"
acapo db 10, 13, "$"
msg2 db "Il numero di valori pari corrisponde a: $"


ret