《学生名次表实验》指导书
一、实验目的
1、 掌握多重循环程序的设计要点
2、 提高程序设计能力
二、设计内容与要求
grade为首地址的10个字的数组中保存了学生的成绩,其中grade+i 保存学号为i+1的学生的成绩。要求建立一个10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中,其中rank+i的内容是学号为i+1学生的名次(提示:一个学生的名次等于成绩高于该学生的人数加1)
三、可提供的仪器
1、 计算机一台
2、 Microsoft的汇编程序编译软件包Masm 5.0
3、 文本编辑器EDIT
四、分析与设计提示
  本题可以采用两重循环来实现,内层对应于每个学生的名次计算,外层则解决所有学生的名次计算。由于数组的长度是确定的,因此内、外层均可用计数值来控制循环的结束。在设计多重循环时,必须注意内层循环结束后的重新初始化的问题。
假设我们有5个学生的成绩,在程序运行结束后,应该如下图所示:
运行状态
数组名
数组数据元素
运行前
grade
88
75
汇编语言清华大学出版社95
63
90
rank(待定)
?
?
?
?
?
运行后
grade
88
75
95
63
90
rank
3
4
1
5
2
在程序设计中可以定义这样一个数据段如下:
data    segment
        grade  dw  88,77,98, 56, 75, 60,90,65,72,94
        rank  dw  10 dup(?)
data    ends
五、参考资料
[1] 沈美明 温冬婵编著,IBM-PC汇编语言程序设计,北京:清华大学出版社,2001
[2] 沈美明 温冬婵 张赤红 编著 IBM-PC汇编语言程序设计实验教程,北京:清华大学出版社,2003