汇编编程:根据成绩数组cj中保存的10个学生的成绩,统计相应学生的名次并填入名次数组mc中 (提示:一个学生的名次等于成绩高于该学生的人数加1)。
时间: 2024-02-01 13:16:07 浏览: 154
汇编语言实现学生成绩统计分析.
4星 · 用户满意度95%
以下是一份汇编程序,根据输入的成绩数组,统计每个学生的名次并存入名次数组中:
```
.MODEL SMALL
.STACK 100H
.DATA
cj DB 80, 90, 85, 70, 75, 95, 85, 80, 90, 85
mc DB 10 DUP(0)
.CODE
MOV AX, @DATA
MOV DS, AX
; 外层循环,遍历每个学生
MOV CX, 10
MOV BX, 0 ; BX 存储当前学生的分数
MOV DI, 0 ; DI 存储当前学生的名次
L1:
MOV BL, cj[BX]
; 内层循环,统计高于当前学生分数的学生数目
MOV SI, 0 ; SI 存储高于当前学生的分数
MOV DX, CX ; DX 存储剩余未遍历的学生数
L2:
CMP DX, 0
JE DONE
MOV AL, cj[SI]
CMP BL, AL
JGE SKIP
INC DI
SKIP:
INC SI
DEC DX
JMP L2
DONE:
MOV mc[BX], DI+1 ; 名次 = 高于当前学生数目 + 1
INC BX
DEC CX
CMP CX, 0
JNE L1
MOV AH, 4CH
INT 21H
END
```
程序中使用了两层循环,外层循环遍历每个学生,内层循环统计高于当前学生分数的学生数目。最终结果存储在名次数组mc中。
阅读全文