Allora io ho una stringa del tipo 2 4 7 6 3 e in teoria devo puntare solo sulle posizioni pari e contare quante sono, ma non riesco a capire come fare. Ho già una soluzione ma vorrei capire piuttosto che copiare. La soluzione è questa ma non ho capito perchè nel ciclo punta ad un carattere e vede se è pari, in questo caso vede se il carattere numerico è pari ma non la posizione,o no?
sono un pò confusa
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