4. 定义一数组GRADE存放有100个学生某门功课的考试成绩,要求编一程序,完成如下任务:统计各分数段的人数,即要求统计90~100分,80~89分,70~79分,60~69分以及60分以下的各有多少人。
DATA SEGMENT
GRADE DB 30,60,69,70,79,89,90,100,80,70,30,60,80,100,50,70,91 ;可以有更多的数据,这里简单写几个方便调试编写
NUM EQU $-TABLE ;数组长度
COUNT DB 5 DUP(30H)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX, DATA
MOV DS, AX
LEA BX, GRADE ;获取数组首地址
MOV CX, NUM
X1:LEA SI, COUNT
MOV AL, [BX]
CMP AL, 59
JG X2 ;大于59,转X2
ADD [SI], 1
JMP NEXT
X2:CMP AL, 69
JG X3 ;大于69,转X3
ADD SI, 1
ADD [SI], 1
JMP NEXT
X3:CMP AL, 79
JG X4 ;大于79,转X4
ADD SI, 2
ADD [SI], 1
JMP NEXT
X4:CMP AL, 89
JG X5 ;大于89,转X4
ADD SI, 3
ADD [SI], 1
JMP NEXT
X5:
ADD SI, 4
ADD [SI], 1 ;90-100
NEXT: INC BX
LOOP X1
MOV AH, 4CH
INT 21H
CODE ENDS
END START