设有9个学生的成绩分别为64、69、88、93、100、89、98、40、90。用emu8086编写程序统计0~59、60~79、80~89、90~99各分数段以及100分的人数,并分别存放到P5、P6、P8、P9、P10单元中。
时间: 2023-10-24 07:09:38 浏览: 45
下面是用emu8086编写的程序,实现统计成绩分数段的功能:
```
; 初始化数据
MOV CX, 9 ; 9个学生
MOV SI, 0 ; 学生成绩的数组索引
MOV DI, 0 ; 分数段的数组索引
MOV BYTE PTR [P5], 0 ; 初始化各分数段的人数为0
MOV BYTE PTR [P6], 0
MOV BYTE PTR [P8], 0
MOV BYTE PTR [P9], 0
MOV BYTE PTR [P10], 0
; 循环读取每个学生的成绩并统计分数段
LOOP_START:
MOV AL, [SCORES + SI] ; 从数组中读取成绩
CMP AL, 100 ; 判断是否为100分
JE SCORE_100 ; 如果是,跳转到SCORE_100标签
MOV BL, AL
SHR BL, 4 ; 右移4位,得到十位数
CMP BL, 6 ; 判断属于哪个分数段
JB SCORE_0_59 ; 小于6属于0~59分数段
CMP BL, 8
JB SCORE_60_79 ; 6~7属于60~79分数段
CMP BL, 10
JB SCORE_80_89 ; 8~9属于80~89分数段
JMP SCORE_90_99 ; 大于等于9属于90~99分数段
SCORE_0_59:
INC BYTE PTR [P5]
JMP NEXT_SCORE
SCORE_60_79:
INC BYTE PTR [P6]
JMP NEXT_SCORE
SCORE_80_89:
INC BYTE PTR [P8]
JMP NEXT_SCORE
SCORE_90_99:
INC BYTE PTR [P9]
JMP NEXT_SCORE
SCORE_100:
INC BYTE PTR [P10]
NEXT_SCORE:
INC SI ; 数组索引+1
LOOP LOOP_START ; 继续循环
; 数据定义
SCORES DB 64, 69, 88, 93, 100, 89, 98, 40, 90
P5 DB ?
P6 DB ?
P8 DB ?
P9 DB ?
P10 DB ?
```
程序逐个读取学生的成绩,然后判断该成绩属于哪个分数段,并将对应分数段的人数加1。最后,统计完毕后,各分数段的人数存储在P5、P6、P8、P9、P10单元中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)