设有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:07:24 浏览: 40
下面是使用emu8086编写的程序,可以实现上述要求:
```
; 初始化段寄存器
assume cs:code, ds:data
; 定义数据段
data segment
scores db 64, 69, 88, 93, 100, 89, 98, 40, 90 ; 存放成绩的数组
count1 db 0 ; 存放0~59分数段的人数
count2 db 0 ; 存放60~79分数段的人数
count3 db 0 ; 存放80~89分数段的人数
count4 db 0 ; 存放90~99分数段的人数
count5 db 0 ; 存放100分的人数
data ends
; 定义代码段
code segment
start:
; 设置数据段寄存器
mov ax, data
mov ds, ax
; 遍历成绩数组,统计各分数段人数
mov cx, 9 ; 循环次数为9
mov si, offset scores ; 存放成绩数组的偏移地址
mov bl, 0 ; 存放当前成绩的变量
mov bh, 0 ; 存放当前成绩的十位数
mov al, 0 ; 存放当前成绩的个位数
loop1:
mov bl, [si] ; 取出当前成绩
mov bh, bl ; 获取十位数
shr bh, 1 ; 右移1位,相当于除以10
cmp bh, 0 ; 判断是否在0~5分数段
je count1 ; 是,则跳转到count1标签
cmp bh, 6 ; 判断是否在6~7分数段
je count2 ; 是,则跳转到count2标签
cmp bh, 8 ; 判断是否在8~9分数段
je count3 ; 是,则跳转到count3标签
jmp count4 ; 否则跳转到count4标签
count1:
inc byte ptr count1 ; 0~59分数段人数加1
jmp endloop1
count2:
inc byte ptr count2 ; 60~79分数段人数加1
jmp endloop1
count3:
inc byte ptr count3 ; 80~89分数段人数加1
jmp endloop1
count4:
cmp bl, 100 ; 判断是否为100分
jne endloop1 ; 不是,则跳转到endloop1标签
inc byte ptr count5 ; 是,则100分的人数加1
endloop1:
inc si ; 指向下一个成绩
loop loop1 ; 循环遍历成绩数组
; 将结果存储到内存中
mov si, offset count1 ; 存放0~59分数段人数的偏移地址
mov al, [count1] ; 获取0~59分数段人数
mov [si], al ; 存储到P5单元中
mov si, offset count2 ; 存放60~79分数段人数的偏移地址
mov al, [count2] ; 获取60~79分数段人数
mov [si], al ; 存储到P6单元中
mov si, offset count3 ; 存放80~89分数段人数的偏移地址
mov al, [count3] ; 获取80~89分数段人数
mov [si], al ; 存储到P8单元中
mov si, offset count4 ; 存放90~99分数段人数的偏移地址
mov al, [count4] ; 获取90~99分数段人数
mov [si], al ; 存储到P9单元中
mov si, offset count5 ; 存放100分的人数的偏移地址
mov al, [count5] ; 获取100分的人数
mov [si], al ; 存储到P10单元中
; 程序结束
mov ah, 4ch
int 21h
code ends
end start
```
程序运行后,P5、P6、P8、P9、P10单元中分别存储了0~59、60~79、80~89、90~99、100分的人数。注意,在emu8086中,P5、P6、P8、P9、P10单元分别对应着内存地址0040:0005、0040:0006、0040:0008、0040:0009、0040:000A。
相关推荐
![](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)