收藏 分销(赏)

汇编语言综合实验报告.doc

上传人:仙人****88 文档编号:9255545 上传时间:2025-03-18 格式:DOC 页数:11 大小:188.50KB
下载 相关 举报
汇编语言综合实验报告.doc_第1页
第1页 / 共11页
汇编语言综合实验报告.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述
华北科技学院综合性实验报告 华北科技学院综合性 实 验 报 告 课程名称 汇 编 语 言 实验学期 2011 至 2012 学年 第 1 学期 学生所在系部 计算机学院网络工程系 年级 09 专业班级 网络工程B093 学生姓名 李金栋 学号 200907024324 任课教师 李冬艳 实验成绩 计算机学院制 实验报告须知 1、 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。 2、 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。 3、 教师应该填写的内容包括:实验成绩、教师评价等。 4、 教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。 5、 未尽事宜,请参考该课程的实验大纲和教学大纲。 《 汇 编 语 言》课程综合性实验报告 开课实验室:软件一实验室 2011年 12 月6 日 实验题目 显示学生名次表 一、实验目的 显示学生名次表 二、设备与环境 PC兼容机、Windows操作系统、汇编程序masm611 三、实验内容 编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于50字节的GRADE数组中,其中GRADE+N保存学号N+1的学生成绩。然后根据GRADE中的学生成绩,把学生名次填入50字节的RANK数组中,其中RANK+N的内容是学号为N+1学生的名次。再按学号顺序和学生名次顺序把学生成绩显示出来。 实验要求:1.必须画流程图。2.本程序要求要有多重循环和子程序及宏,其中 成绩输入、计算学生名次、显示学生名次都分别用子程序,也可用宏处理 四、实验结果及分析(包括①已完成什么功能,②如何实现的、遇到的问题和解决办法、流程图和关键代码解释,③收获和体会等) 1、按照题目要求,本程序实现了以下功能:(1)输入成绩,不需要事先设定学生数、按照提示输入决定是否再次输入与停止。(2)按学号显示成绩和名次。 2、程序流程 首先,先定义两个宏:换行和空格。主程序包括调用三个子程序:INGRADE(输入成绩)、PAILIE(排列)、XIANSHI(按姓名显示)。 主程序流程图 输入子程序的流程图 开始 CX赋1,SI赋0 输入学生成绩 成绩存入GRADE[SI],CX存入XUEHAO[SI] SI+1,CX+1 是否再次输入 是否输入错误 结束 Y N Y Y 排序子程序流程 处理同分的情况: 输出子程序 由于输出学号、成绩、排名使用的算法基本一致都重复使用输出2位十进制数的方法、流程简单,在此省略此部分流程图。 运行结果: 本程序的设计思想是采用默认顺序输入成绩、用两个数组分别存放成绩、名次。从运行结果看, 已经完成了题目要求,并实现了简单的输入纠错。 关键代码分析: PAILIE PROC MOV CX,0 MOV CL,NUMBER LOOP1: MOV BH,NUMBER ; ;冒泡排序 ;BH用来计数的计名次, ;从输入的数中选一个数跟其它数比较, ;如果大 就减一这样可以算出来他的名次 ;并存在BX寄存器中。。。 MOV AH,CL ;用来保护CX寄存器 MOV SI,0 ;SI用来遍历各个数的 DEC CL ;N+1学号的成绩存在N中 MOV BP,CX ;用来取GRADE数组中的数据以便跟其它数据比较 MOV AL,GRADE[BP] ;取出数据放入CL中 MOV CL,NUMBER ;每次都循环NUMBER次 LOOP2: CMP AL,GRADE[SI] JG CHANGE INC SI LOOP LOOP2 JMP JIXU CHANGE:DEC BH INC SI LOOP LOOP2 JIXU:MOV CL,AH ;恢复CX寄存器 DEC CL MOV BP,CX MOV RANK[BP],BH ;将获得的名次存入RANK数组中 INC CL LOOP LOOP1 ;以下代码类似于上面计算名次的代码。也是冒泡算法。 MOV SI,0 ;处理分数相等的情况, MOV AL,NUMBER CBW MOV CX,AX LOOP3: MOV DI,CX DEC CX MOV BP,0 MOV BX,0 MOV SI,CX MOV AL,RANK[SI] MOV CX,0 MOV CL,NUMBER LOOP4:CMP AL,RANK[BP] JE YOUHUA INC BP LOOP LOOP4 JMP JIXU1 YOUHUA: INC BX ;用来计算有几个数是相同的 INC BP ;遍历每一个数 LOOP LOOP4 JIXU1:MOV CX,DI DEC BX SUB RANK[SI],BL ;相同成绩的学生名次减BL LOOP LOOP3 RET PAILIE ENDP 程序总结与感想: 程序的核心算法在于排序成绩、计算学生名次、这里主要使用冒泡算法,关于计算排名,默认某个学生a排名是max,如果有学生成绩比他大,a的排名自减。这部分代码加在冒泡的算法中一起执行。对于两个学生分数相同的情况,上面的流程图给出了解释,源代码中有详细的注释。在处理相同分数时,外循环SI从end到0,内循环BP from 0 to end,BX 用来存放某次外循环分数相同的个数,也包括自己,相等BX加1,BP指针后移;不相等BP指针后移,之后恢复CX, BX减1,RANK[SI]减BX,进入外循环,SI指针前移。直至循环结束,处理完同分的情况。 感想:编写这个程序,个人认为可以用简单的结构实现简单的功能,定义两个宏为了使用方便,由于能力有限采用按顺序输入。关于程序,借鉴冒泡排序和其他同学的意见。子程序的算法是整个程序关键,寄存器使用要有固定的格式风格,可以减少错误,提高效率。令外,程序模块化更有利于修改和检查,提高程序可读性。个人认为,只要程序能实现题目的要求,程序就是好程序,不必拘泥于多余的功能和复杂算法。 教 师 评 价 评定项目 A B C D 评定项目 A B C D 算法正确 操作熟练 程序结构合理 实验结果正确 语法、语义正确 文字流畅、报告规范 其他: 评价教师签名:李冬艳 2011年12 月 16 日 第 10 页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服