汇编综合实验报告_第1页
汇编综合实验报告_第2页
汇编综合实验报告_第3页
汇编综合实验报告_第4页
汇编综合实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北科技学院综合性实验报告PAGE 第7页华北科技学院综合性实验报告课程名称汇编语言实验学期2014至2015学年第1学期学生所在系部年级专业班级学生姓名学号任课教师李冬艳实验成绩计算机学院制

《汇编语言》课程综合性实验报告开课实验室:基础一DATE\@"yyyy-MM-dd"2014-12-10实验题目显示学生名次表一、实验目的进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序、子程序、宏指令编程方法,提高汇编语言程序设计能力的应用水平。二、设备与环境PC兼容机、Windows操作系统、汇编程序masmforwindows2012三、实验内容编制一程序,要求接收从键盘输入的一个班的学生的学号、姓名、成绩,对学生的成绩进行排序,最后把学号、姓名、学生成绩、名次显示出来。实验要求:1.必须画流程图。2.本程序涉及汇编语言的多重循环、子程序及宏,其中成绩输入、计算学生名次、显示学生名次都分别用子程序,也可用宏处理。3.要求用菜单选择。具体要求:输入1是数据录入并输出(包括姓名、学号、成绩);输入2是排序后的数据输出(包括姓名、学号、成绩、名次);输入3是可以按学号查找某学生,并输出其成绩,选择修改或不改成绩。实验结果及分析一.程序实现的功能(1)学生学号,姓名和成绩的输入和输出。(2)学生成绩的排序(3)学生成绩的查询及修改二.关键代码的分析及解释(1)菜单提示 arydb10,13,'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@' db10,13,'@1.inputstudentnumber,name,score@'db10,13,'@2.outputdata@'db10,13,'@3.pickoutstudent@'db10,13,'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'DB10,13,'pleasechoosewhatyouwanttodo?1/2/3','$'(2)宏定义:hcmacro;回车换行宏定义movah,2movdl,13int21hmovah,2movdl,10int21hendmkonggemacron;空格宏定义 local movcx,nlp8: movdl,20h movah,2 int21h looplp8 endm(3)菜单调用movah,1;输入字符比较int21hcmpal,'1'jzlp1cmpal,'2'jzlp2cmpal,'3'jzlp3movah,9movdx,offseterror;错误输出,并返回int21hjmpmain(4)输入子程序inputprocmovbx,pincbxmovp,bxmovah,9leadx,string1;输入姓名并存入buffer1中int21hmovah,10leadx,buffer1int21hmoval,buffer1+1addal,2movah,0movsi,axmovbuffer1[si],0let4:movah,9;输入学号存入buffer2中leadx,string2int21hmovcx,mmovax,0leadi,buffer2+2repstosbmovah,10leadx,buffer2int21hmoval,buffer2+1movah,0movcx,axloop1:movax,cxincaxmovsi,axcmpbuffer2[si],30h;判断输入的数字是否为0~9jblet4cmpbuffer2[si],39hjalet4looploop1moval,buffer2+1addal,2movah,0movsi,axmovbuffer2[si],0let5:movdx,offsetstring3;输入成绩存入buffer2中movah,9int21hmovah,10leadx,buffer3int21hmoval,buffer3+1movah,0movcx,axmoval,buffer3+1addal,2movah,0movsi,axmovbuffer3[si],0hcmovdx,offsetstrput1;将存入的串输出来movah,9int21hleadx,buffer1+2int21hleadx,buffer2+2int21hleadx,buffer3+2int21hmovmingci[bx-1],blcmpbx,1jzlet1addsign1,n+1;执行加法指令,计入次数addsign2,m+1addsign3,l+1let1:callsubr1retinputendp(5)排序子程序paixuprocmovcx,pdeccxcmpcx,0jzexit2loop3:pushcxmovbx,0movsi,0loop2:movax,score2[bx]cmpax,score2[bx+l+1]jgenextxchgax,score2[bx+l+1];交换成绩movscore2[bx],axmoval,mingci[si]xchgal,mingci[si+1];交换名次movmingci[si],alnext:addbx,l+1incsilooploop2popcxlooploop3exit2:retpaixuendp菜单流程图:程序开始程序开始菜单输入数字CallinputAl=1?Al=3?Al=2?查询Callpaixu否是是否是排序排序人数人数-1保存外循环次数保存外循环次数ScoreScore2→alAl>al+1?是Al>al+1?Score2中成绩交换否Score2中成绩交换Mingci交换Mingci交换II=i+1内循环结束?内循环结束?恢复外循环次数是恢复外循环次数外循环结束?外循环结束?Ret返回是Ret返回三.心得体会此次程序设计,为学生成绩管理,考虑到难度问题,学生信息为学号,姓名,成绩,只对一门成绩进行管理,包括成绩录入,查询成绩,修改成绩,排序。程序主要运用的是子程序的设计与调用以及宏,在调用相应的子程序时,我们运用的是跳转,通过比较的方式,得到相应的结果进行跳转,然后调用子程序。在程序的设计中,设计了菜单,使得程序的界面美观友好,达到使用者操作的时候,感觉简单、清晰。在设计子程序的时候,因为我们是分开进行编程的,所以每一个子程序都是独立的模块。在对子程序的编写时,有的子程序也设计了小菜单,方便用户操作,界面美观。对于每个子程序的设计遇到了很多的麻烦,例如由于程序设计了大量宏,当调用宏时,dx连带改变,而这点很容易忽略,最后导致程序运行错误,花了好多时间去解决。另外编号的重复也导致很多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论