汇编编程:根据成绩数组cj中保存的10个学生的成绩,统计相应学生的名次并填入名次数组mc中
时间: 2024-02-01 08:16:16 浏览: 83
用汇编语言实现学生成绩统计分析
3星 · 编辑精心推荐
下面是用汇编语言实现的代码:
```
.model small
.stack 100h
.data
cj db 70, 80, 90, 60, 75, 85, 95, 65, 77, 88
mc db 10 dup(0)
.code
main proc
mov ax, @data
mov ds, ax
mov cx, 10 ; 循环10次,对每个学生进行排名
lea si, cj ; 将数组cj的地址加载到si寄存器中
lea di, mc ; 将数组mc的地址加载到di寄存器中
mov bx, 1 ; 初始化名次为1
L1:
mov al, [si] ; 取出当前学生的成绩
mov ah, [di] ; 将当前学生的名次存入名次数组mc中
cmp al, [si+1] ; 比较当前学生的成绩和下一个学生的成绩
jge L2 ; 如果当前学生的成绩大于等于下一个学生的成绩,跳转到L2
inc bx ; 否则,名次加1
L2:
inc si ; 指向下一个学生的成绩
inc di ; 指向下一个学生的名次
dec cx ; 循环计数器减1
jnz L1 ; 如果还有学生,继续循环
mov ah, 4ch ; 退出程序
int 21h
main endp
end main
```
以上代码中,使用了两个指针si和di分别指向成绩数组cj和名次数组mc。使用了一个循环计数器cx,每次循环取出当前学生的成绩,并比较当前学生的成绩和下一个学生的成绩大小,根据大小关系更新名次。最后,将名次数组mc中的数据输出即可。
阅读全文