设有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 13:08:20 浏览: 80
下面是使用emu8086编写的统计程序:
```
org 100h
mov bx, 0 ; 初始化各分数段人数为0
mov cx, 0
mov dx, 0
mov si, 0
loop_start:
mov al, [grades + si] ; 取出一个成绩
cmp al, 60 ; 判断所属分数段
jb low
cmp al, 80
jb medium
cmp al, 90
jb high
cmp al, 100
jbe perfect
low:
inc byte [P5] ; 属于0~59分数段,对应计数器加1
jmp next
medium:
inc byte [P6] ; 属于60~79分数段,对应计数器加1
jmp next
high:
inc byte [P8] ; 属于80~89分数段,对应计数器加1
jmp next
perfect:
inc byte [P9] ; 属于90~99分数段,对应计数器加1
cmp al, 100
je perfect_100 ; 如果是100分则跳转到perfect_100标签
next:
inc si ; 继续处理下一个成绩
cmp si, 9
jne loop_start ; 如果还有成绩则跳转到loop_start标签
perfect_100:
inc byte [P10] ; 最后统计100分的人数
jmp exit
grades: db 64, 69, 88, 93, 100, 89, 98, 40, 90
P5: db 0
P6: db 0
P8: db 0
P9: db 0
P10: db 0
exit:
mov ah, 4ch
int 21h
```
程序中使用了5个计数器,分别对应每个分数段和100分的人数,它们分别存放在P5~P10单元中。程序使用循环处理每个成绩,根据分数段对应的计数器加1。最后输出结果并退出程序。
阅读全文