Somma delle cifre in posizioni pari

Scrivere un programma Assembly che calcola la somma delle cifre in posizione pari in una sequenza di valori interi positivi, assumendo di considerare valori a singola cifra.

A tal fine, realizzare i seguenti passi:
1. Leggere da tastiera una stringa di max 10 caratteri;
2. Creare un ciclo in cui, per ciascun carattere della stringa in posizione pari -
- si effettua la conversione el carattere nel valore numerico corripondente(per fare questo basta sottrarre '0' al carattere);
- si somma il valore ottenuto alla somma parziale;
3. Al termine del ciclo, calcolare il prodotto tra la somma risultante e la lunghezza effettiva della stringa;
4. Se il risultato della moltiplicazione è maggiore di 100, visualizzare il messaggio 'Risultato maggiore di 100', altrimenti visualizzare il
messaggio 'Risultato minore di 100'.

#make_COM#
ORG 100h

Acquisizione MACRO var1
LEA DX,var1
MOV Ah,0Ah
INT 21h
ENDM

Stampa MACRO var2
LEA DX,var2
MOV AH,09h
INT 21h
ENDM

Stampa MSGACQ
Acquisizione Stringa

MOV SI,0
MOV CH,0
MOV CL,Stringa[1]

ciclo:
MOV AH,0
MOV AL,SI+2
MOV BL,2
DIV BL

CMP AH,0
JE pari
JMP continua

pari:
MOV BH,Stringa[SI+2]
SUB BH,'0'
ADD Somma,BH

continua:
INC SI
LOOP ciclo

MOV BL,Somma
CALL Moltiplico

RET

Stringa DB 11,?,11 DUP ('$')
MSGACQ DB 'Inserisci Stringa $'
a_capo DB 13,10,'$'
Somma DB 0
MSG1 DB 'Maggiore$'
MSG2 DB 'Minore$'

Moltiplico PROC
MOV AL,BL
MOV BH,Stringa[1]
MUL BH

CMP AX,100
JAE maggiore
JB minore

maggiore:
Stampa MSG1
JMP fine

minore:
Stampa MSG2

fine:
RET
ENDP