⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 05_18.asm

📁 清华大学计算机系汇编语言课程
💻 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 + -