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

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言综合实验报告

华北科技学院综合性 实 验 报 告 课程名称 汇 编 语 言 实验学期 2011 至 2012 学年 第 1 学期 学生所在系部 计算机学院网络工程系 年级 09 专业班级 网络工程B093 学生姓名 李金栋 学号 200907024324 任课教师 李冬艳 实验成绩 计算机学院制 实验报告须知学生实验报告,页面空间不够,。学生应该填写的内容包括:封面相关栏目、地点、时间、结果分析。教师应该填写的内容包括:实验教师根据课程的实验要求,评定学生的实验成绩未尽事宜,请参考该课程实验大纲和大纲。 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(按姓名显示)。 主程序流程图 输入子程序的流程图 排序子程序流程 处理同分的情况: 输出子程序 由于输出学号、成绩、排名使用的算法基本一致都重复使用输出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

您可能关注的文档

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档