- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子工程学院
微机原理汇编语言上机实验报告
班级:
学号:
姓名:
班内序号:
一、实验要求
一个学生的信息包括姓名、班级、学号(班内序号)、成绩。试编写程序实现以下功能:
(1)能录入学生成绩(十进制形式);提示:输入形如:tom 301 16 95回车,每名学生用一行,选择一个特殊符表示输入结束;
(2)能按要求:如学号或成绩进行排序显示;
(3)能统计平均成绩;
(4)能统计不及格、60-70、70-80、80-90、90-100各分数段的人数。
二、程序流程和算法思想
(一).程序流程设计
根据本次实验要求要求实现的5个功能:信息录入、按学号排序、按成绩排序、求平均成绩、求各个分数段人数,在加上一个退出程序,总体上可以将整个程序划分为七个部分,依次为功能选择部分(六个选项)、信息录入部分、按学号排序部分、按成绩排序部分、求平均成绩部分、求各个分数段部分、退出程序部分。
根据以上的划分,画出流程图如下:
(二). 数据结构
1、采用数组进行数据存储:
(1)学生人数数组stuNum DB 0
(2)学生信息数组
Student DB maxNum DUP (14,0,$,$,$,$,$,$,$,$,$,$,$,$,$,$),
每组数数有0-17共18个字节,0为最大输入,1为实际输入,2-16为学生信息,17为”$”
学生信息存储格式为(名称 班级 学号 成绩),例如(liu 207 11 98),
(3)平均成绩数组 aveScores DB 00H,$
(4)用变量countA DB 00H,$、countB DB 00H,$、countC DB 00H,$、countD DB 00H,$、countE DB 00H,$分别记录90分以上、89~80分、79~70分、69~60分以及60分以下各分数段人数 。
2、子程序
根据实验要求的功能,程序包含6个子程序
(1)FunctionChioce 程序功能选择
(2)infinput 学生信息输入
(3)IDbublingSort 按学号排序(升序)
(4)gradeBublingSort 按成绩排序(降序)
(5)countAverageScores 计算平均分
(6)Statistics 统计各个分数段人数
对于学生按成绩或学号排序,采用冒泡排序,成绩按降序排序,学号按升序排序
3、提示信息
Please choose 选择功能
Wrong choice! Please choose it again! 无此选项,重新选择
Please input students’ information 输入学生信息
Result 输出结果(按学号排序、按成绩排序、计算平均成绩、统计分数段)
60: 小于60分人数
60~69: 60~69分人数
70~79: 70~79分人数
80~89: 80~89分人数
90~100: 90~100分人数
三、程序运行截图
程序功能选择
学生信息输入
按学号排序
按成绩排序
计算平均值
统计各个分数段人数
错误选择报错,重新输入
四、实验总结
这次汇编语言上机实验,要求编写一个学生信息录入查询程序,实现成绩录入,按学号排序,按成绩排序,求平均分,统计各个分数段人数的功能。
从程序的设计上来说,我学会了自顶向下设计的方式,即根据程序要实现的功能,将程序划分为一个个小的子程序,画出流程图,再进行程序的编写及细化。
从对汇编语言语法上来说,这次实验大大地增强了我对汇编语言的掌握程度。这次的实验相对来说比较综合,用到的知识也很多,从最基本的数组和变量的定义,到各种运算符的运用,到各个指令的使用,到较为复杂的程序的总体框架的编写,子程序的定义和调用,宏的定义和调用,数据参数的传递。在整个编写的过程中,我对于汇编语言语法的理解加深了,而且,对于其实现的原理机制的理解也大大增强了。
汇编语言并非高级语言,不是面向对象,难度较大,极有可能因为一些小的细节导致程序无法运行,甚至出现不正确的结果,例如入栈和出栈问题等,排查起来相对较为困难。我在这次的实验中也遇到了各种各样的小问题,但在自己细心的检查下以及和同学们的讨论中,这些问题也都一一解决了。这次实验对于提高我的编程思维能力和发现问题,解决问题的能力的效果还是比较明显的。
总的来说,这次的实验还是比较完满的,而且是极其有意义的。这对于我以后无论是读研继续深造,还是步入社会工作,都是很有帮助的。
五、实验源代码
DATA SEGMENT
maxNum EQU 100 ;学生的最大人数
stuNum DB 0
文档评论(0)