资源描述:
《总汇编语言计算比赛成绩系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实用标准文案《汇编语言》实习报告实习题目计算比赛成绩系统学生姓名班级(学号)院系信息学院计算机系指导老师提交时间2012年6月19号成绩精彩文档实用标准文案目录1实习任务概述12基本知识12.1汇编语言源程序结构12.2汇编语言上机过程22.3关键指令介绍23课题分析33.1程序功能分析33.2主程序流程图44详细设计54.1菜单模块54.2输入模块54.3移动模块64.4输出模块65代码实现76调试过程87操作说明8实习总结9参考文献10精彩文档实用标准文案1实习任务概述课程名称:计算比赛成绩系统基本功能:(1)有9名评委,每个评委给分范围为0
2、~10(整数):由键盘输入;(2)9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分即为参赛者的得分(精确到小数点后二位,不考虑四舍五入);(3)将最后得分在光标位置处显示出来2基本知识2.1汇编语言源程序结构①用INT21H返回DOS的程序结构模式②定义了一个数据段,代码段包括开辟一段空间存放输入的成绩,另外还有存放各种提示语(输入提示语,输出提示语等)。③定义了一个代码段,主要存放源程序代码。2.2汇编语言上机过程①调用全屏幕编辑程序WordStar或PCED或EDLTN,建立和修改源程序;
②将源程序经过汇编,变成机器代码形式
3、的目标文件(OBJ);③经过连接程序处理,形成可执行文件(EXE);④利用DEBUG调试程序单步执行或利用设断点的方法运行EXE程序,检查程序中的错误。2.3关键指令介绍数据传送指令:MOV,PUSH,POP,LEA算术指令:ADD,SUB,MUL,DIV,INC,DEC,CMP控制转移指令:JMP,JL,JG,JNL,JE3课题分析3.1程序功能分析从键盘输入九个0~10的数,除去最大数和最小数,求剩余数的平均数。3.2主程序流程图精彩文档实用标准文案3详细设计3.1菜单模块mainprocfarSTART:pushdssubax,axpush
4、axMOVAX,DATASMOVDS,AXcallinput;输入9个数,数之间用空格隔开callsort;冒泡排序callcrlf;换行;movsi,2精彩文档实用标准文案callsum;排序后,求第二个至倒数第二个数的和callcursor;光标;movbx,gradeavg;callbinidec;十进制输出平均成绩;calloutputretmainendp3.1输入模块inputprocnearleadx,mess1movah,09int21hcallcrlfmovsi,0;movcount,0ent:calldecibin;输入一个成
5、绩;inccountcmpdl,'';如果输入空格,则表示输入下一个数jestorecmpdl,13;如果输入回车,则表示输入完毕jeexit1jneerror;否则显示输入错误store:movgrade[si],bxaddsi,2jmpenterror:leadx,mess2movah,09int21hexit1:movgrade[si],bxcallcrlfretinputendpdecibinprocnear;输入一个成绩movbx,0movdx,0newchar:movah,01hint21hmovdl,al精彩文档实用标准文案suba
6、l,30h;asc码减去30h得出数字jlexitcmpal,09djgexit;如果输入的不在'1~9'范围内,则结束本次输入cbwxchgax,bxmovcx,10d;第一位数字乘以10,加上第二位数字,得到二位十进制数mulcxxchgax,bxaddbx,axjmpnewcharexit:retdecibinendp3.1排序模块sortprocnear;冒泡排序movcx,9deccxloop1:movdi,cxmovbx,0loop2:movax,grade[bx]cmpax,grade[bx+2]jgecotinuexchgax,g
7、rade[bx+2]movgrade[bx],axcotinue:addbx,2looploop2movcx,dilooploop1retsortendp3.2求平均值输出模块sumprocnear;求平均值并输出leadx,mess3movah,9hint21hmovdx,0movax,0精彩文档实用标准文案movsi,2movax,grade[si];在排序的数当中,求第二个数至倒数第二个数的平均值addavg:addsi,2addax,grade[si];addsi,2cmpsi,14;第二个数加到第8个数jbaddavgcmpax,46h
8、jaefull;如果全部是10jmpn_fullfull:movah,2hmovdl,'1'int21hmovdl,'0'int21hm