TITLE VOWEL COUNT
.MODEL SMALL
.STACK 64H
.DATA
MAXCHAR DB 20H
ACTCHAR DB ?
CHARS DB 20H DUP (?)
ARRAY DB "AEIOUaeiou"
TEMP DB 03H
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA DX,MAXCHAR
MOV AH,0AH
INT 21H
MOV CH,00
MOV CL,ACTCHAR
MOV DL,00
LEA SI,CHARS
P0: MOV DH,[SI]
MOV AL,0AH
LEA DI,ARRAY
P2: CMP [DI],DH
JNE P1
INC DL
INC SI
JMP P0
P1: INC DI
DEC AL
JNZ P2
INC SI
LOOP P0
MOV SI,00
MOV AL,DL
MOV DL,0AH
P3: MOV AH,00
DIV DL
ADD AH,30H
MOV TEMP[SI],AH
INC SI
CMP AL,00
JNE P3
MOV AH,02
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
P4: DEC SI
MOV DL,TEMP[SI]
INT 21H
CMP SI,00
JNE P4
MOV AX,4C00H
INT 21H
MAIN ENDP
END MAIN
.MODEL SMALL
.STACK 64H
.DATA
MAXCHAR DB 20H
ACTCHAR DB ?
CHARS DB 20H DUP (?)
ARRAY DB "AEIOUaeiou"
TEMP DB 03H
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA DX,MAXCHAR
MOV AH,0AH
INT 21H
MOV CH,00
MOV CL,ACTCHAR
MOV DL,00
LEA SI,CHARS
P0: MOV DH,[SI]
MOV AL,0AH
LEA DI,ARRAY
P2: CMP [DI],DH
JNE P1
INC DL
INC SI
JMP P0
P1: INC DI
DEC AL
JNZ P2
INC SI
LOOP P0
MOV SI,00
MOV AL,DL
MOV DL,0AH
P3: MOV AH,00
DIV DL
ADD AH,30H
MOV TEMP[SI],AH
INC SI
CMP AL,00
JNE P3
MOV AH,02
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H
P4: DEC SI
MOV DL,TEMP[SI]
INT 21H
CMP SI,00
JNE P4
MOV AX,4C00H
INT 21H
MAIN ENDP
END MAIN