资源描述:
《汇编课程设计__显示学生名次new》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、华北科技学院计算机系综合性实验报告华北科技学院计算机系综合性实验实验报告课程名称汇编程序设计实验学期2010至2011学年第1学期学生所在系部计算机年级2008专业班级网络B08-1学生姓名康飞龙学号200807024118任课教师李冬艳实验成绩计算机系制第8页华北科技学院计算机系综合性实验报告《计算机网络原理》课程综合性实验报告开课实验室:基础一2010年11月17日实验题目显示学生名次表一、实验目的进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序和子程序编程方法,巩固提高汇编语言程序设计能力应用水平。二、设备与环境PC兼容机、Windows操作系统、汇编程
2、序masm611三、实验内容实验内容:编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于50字节的GRADE数组中,其中GRADE+N保存学号N+1的学生成绩。然后根据GRADE中的学生成绩,把学生名次填入50字节的RANK数组中,其中RANK+N的内容是学号为N+1学生的名次。再按学号顺序把学生成绩及学生名次显示出来。实验要求:1.必须画流程图。2.本程序要求要有多重循环和子程序,其中成绩输入、计算学生名次、显示学生名次都分别用子程序,也可用宏处理。第8页华北科技学院计算机系综合性实验报告四、流程图程序开始子程序:输入成绩比较SI与0DECIBINCMPDL,’‘
3、JESTOREJNECMPdl,0dhJEEXIT2JNEERRORDECIBINADDBX,AXMOVBX,0XCHGAX,BX输入字符SUBAL,30HMULCXCMPAL,1MOVCX,10EXIT1XCHGAX,BXCMPAL,9CBW第8页华北科技学院计算机系综合性实验报告排序程序MOVbx,0MOVDI,COUNTL1程序块MOVSI,0NEXTCMPAX,GRADE[SI]JGEMOVDI,-2IF_SAMEJNZCMPDX,GRADE[SI]CMPDI,SINO_COUNTJNZINCWORDPTRRANK[BX]AddBX,2DECDIJNE第8页华北科技
4、学院计算机系综合性实验报告输出程序输出字符串:MESS3回车换行NEXY4SI置0,DI赋COUNT值MOVAX,BXMOVBX,RANK[SI]MOVDX,0BINIDECDIVCXMOVCX,10MOVBX,DXDEC_DIVMOVDL,ALMOVCX,1ADDDL,30HDEC_DIV显示DL输出空格ADDSI,2DECDIJNZ回车换行第8页华北科技学院计算机系综合性实验报告五、实验结果及分析1、程序开始调用子程序INPUT,进入子程序:输出字符串:Pleaseenterstudentsgrade:调用子程序:CRLF,给SI、COUNT赋初值0,调用子程序DECI
5、BIN把输入的数转换为二进制。COUNT值加1,比较输入字符,如果等于空格,存储输入的数,SI加2.如果等于回车符,跳到EXIT2,保存BX到GRADE数组。2、程序排名把输入成绩的个数COUNT赋给外循环次数DI,GRADE数组元素下标置0.把GRADE数组中的数赋给AX,同时排名赋为1,置内循环次数为COUNT。SI置0,DI压入堆栈。循环比较AX与GRADE数组中的数,若大等于跳到NO_COUNT。否则置DI为-2,DI增2,把0下标的数赋给DX,比较DX和GRADE[SI]的值。结果不为0,循环IF_SAME。然后比较DI、SI,为0名次加1,不为0跳到NO_COU
6、NT。弹出DI,SI增2.内循环结束,外循环中BX加2,次数减1。排名子程序结束。3、名次输出输出字符串MESS3,回车换行,置SI为0,DI为学生数。进入程序块:NEXT4,名次赋值给BX,调用子程序BINIDEC,输出空格。SI增2,DEC自减1,判断结果是否为0,不为0则跳到NEXT4。调用回车换行。第8页华北科技学院计算机系综合性实验报告七、关键代码功能:计算一个班级学生的名次RANKPPROCNEARMOVDI,COUNT;grade数组元素个数,外循环次数MOVBX,0;grade数组元素下标L1:MOVAX,GRADE[BX];取grade数组内一个元素MOV
7、WORDPTRRANK[BX],1;将该学生名次初始化1MOVCX,COUNT;内循环次数MOVSI,0NEXT:PUSHDICMPAX,GRADE[SI]JGENO_COUNTMOVDI,-2IF_SAME:ADDDI,2;成绩相同不重复计数MOVDX,GRADE[DI]CMPDX,GRADE[SI]JNZIF_SAMECMPDI,SIJNZNO_COUNTINCWORDPTRRANK[BX]NO_COUNT:POPDIADDSI,2LOOPNEXTADDBX,2;执行grade数组下一元素DECDI;外循环计数