📄 05_18.asm
字号:
;05_18.asm
;Created by RunningOn Chen.
;2003011434 J34 CS dept, THU
;2005-11-15
;本程序不输出答案,要在debug下才能看出结果
data segment
GRADE db 80, 79, 69, 98, 87, 89, 94, 65, 74, 83
db 68, 87, 79, 85, 81, 82, 54, 63, 74, 88
db 84, 74, 69, 90, 87, 91, 92, 75, 76, 84
RANK db 30 dup(?)
STUDENTS equ 30
data ends
stack segment stack
db 100 dup(?)
stack ends
code segment
main proc far
assume ds:data, cs:code
start:
push ds
mov ax, 0
push ax
mov ax, data
mov ds, ax
mov si, 0
cycle: ;for (si = 0 ; si < STUEDENTS ; si++)
mov al, GRADE[si] ;{
call get_rank ; bl = get_rank(GRADE[si]);
mov RANK[si], bl ; RANK[si] = bl;
inc si ;}
cmp si, STUDENTS
jl cycle
exit:
ret
main endp
get_rank proc near ;input: al=(score) output: bl=(rank)
push si ;save si
mov bl, 1
mov si, 0 ;bl = 1
next: ;for (si = 0 ; si < STUEDENTS ; si++)
cmp al, GRADE[si] ;{
jnl continue ; if (al < GRADE[si])
inc bl ; bl++;
continue: ;}
inc si
cmp si, STUDENTS
jl next
pop si
ret
get_rank endp
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -