汇编语言,分类统计记录考试成绩的字节数组areay中优良、及格和不及格的个数
时间: 2024-01-28 12:04:52 浏览: 69
汇编语言用于统计分数段
假设areay中存储的是一组考试成绩,每个成绩占用2个字节(16位),则可以使用汇编语言编写程序进行分类统计记录。
首先,需要定义三个计数器,分别用于统计优良、及格和不及格的个数。可以将这三个计数器存储在寄存器中。
然后,使用循环遍历areay中的每个成绩,判断其分数是否符合优良、及格和不及格的标准,并根据判断结果对对应的计数器进行加一操作。
最后,将三个计数器的值输出即可。
以下是一个简单的汇编语言程序示例:
```
MOV CX, 0 ; 优良计数器
MOV DX, 0 ; 及格计数器
MOV BX, 0 ; 不及格计数器
MOV SI, OFFSET areay ; 将areay的地址存储在SI中
MOV AX, 0 ; 初始化AX为0
LOOP_START:
MOV AX, [SI] ; 将areay中的一个成绩存储在AX中
CMP AX, 80 ; 比较AX与80的大小
JAE GOOD ; 如果AX >= 80,则跳转到GOOD
CMP AX, 60 ; 比较AX与60的大小
JAE PASS ; 如果AX >= 60,则跳转到PASS
JMP FAIL ; 否则跳转到FAIL
GOOD:
INC CX ; 优良计数器加一
JMP CONTINUE ; 跳转到CONTINUE
PASS:
INC DX ; 及格计数器加一
JMP CONTINUE ; 跳转到CONTINUE
FAIL:
INC BX ; 不及格计数器加一
CONTINUE:
ADD SI, 2 ; SI加2,指向下一个成绩
CMP SI, OFFSET areay + 20 ; 比较SI与areay末尾地址的大小
JBE LOOP_START ; 如果SI <= areay末尾地址,则跳转到LOOP_START
; 输出计数器的值
; ...
END:
```
其中,假设areay中有10个成绩,存储在连续的20个字节中。程序遍历areay时,每次将两个字节的成绩存储在AX中,然后进行判断和计数。遍历结束后,可以将CX、DX和BX中的值输出即可。
阅读全文