DSEG SEGMENT
STRING DB 40,?,40 DUP (?)
CJ DB 10 DUP(?)
S6 DB ?
S7 DB ?
S8 DB ?
S9 DB ?
S10 DB ?
DSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
LEA DX,STRING
MOV AH,10
INT 21H
LEA DI,CJ
LEA SI,STRING+2
MOV BH,0
MOV AL,0
AGAIN:
MOV BL,[SI]
CMP BL,','
JZ NEXT
CMP BL,0DH
JZ NEXT
SUB BL,30H
MOV CL,10
MUL CL
ADD AL,BL
INC SI
JMP AGAIN
NEXT:
MOV [DI],AL
INC DI
MOV AL,0
INC BH
INC SI
CMP BL,0DH
JNZ AGAIN
TJ:
LEA DI,CJ
TJ1:
MOV AL,[DI]
CMP AL,100
JZ ADDS10
CMP AL,90
JAE ADDS9
CMP AL,80
JAE ADDS8
CMP AL,70
JAE ADDS7
CMP AL,60
JAE ADDS6
ADDS10:
INC S10
JMP TJNEXT
ADDS9:
INC S9
JMP TJNEXT
ADDS8:
INC S8
JMP TJNEXT
ADDS7:
INC S7
JMP TJNEXT
ADDS6:
INC S6
TJNEXT:
INC DI
DEC BH
JNZ TJ1
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
STRING DB 40,?,40 DUP (?)
CJ DB 10 DUP(?)
S6 DB ?
S7 DB ?
S8 DB ?
S9 DB ?
S10 DB ?
DSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
LEA DX,STRING
MOV AH,10
INT 21H
LEA DI,CJ
LEA SI,STRING+2
MOV BH,0
MOV AL,0
AGAIN:
MOV BL,[SI]
CMP BL,','
JZ NEXT
CMP BL,0DH
JZ NEXT
SUB BL,30H
MOV CL,10
MUL CL
ADD AL,BL
INC SI
JMP AGAIN
NEXT:
MOV [DI],AL
INC DI
MOV AL,0
INC BH
INC SI
CMP BL,0DH
JNZ AGAIN
TJ:
LEA DI,CJ
TJ1:
MOV AL,[DI]
CMP AL,100
JZ ADDS10
CMP AL,90
JAE ADDS9
CMP AL,80
JAE ADDS8
CMP AL,70
JAE ADDS7
CMP AL,60
JAE ADDS6
ADDS10:
INC S10
JMP TJNEXT
ADDS9:
INC S9
JMP TJNEXT
ADDS8:
INC S8
JMP TJNEXT
ADDS7:
INC S7
JMP TJNEXT
ADDS6:
INC S6
TJNEXT:
INC DI
DEC BH
JNZ TJ1
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START