05_18.asm
来自「清华大学计算机系汇编语言课程」· 汇编 代码 · 共 64 行
ASM
64 行
;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 + =
减小字号Ctrl + -
显示快捷键?