输入的一个班的学生成绩(汇编语言知识学习).docx

输入的一个班的学生成绩(汇编语言知识学习).docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《汇编语言》课程综合性实验报告 开课实验室: 年月日 实验题目 显示学生名次表 一、实验目的 进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序和程序 编程方法,稳固提高汇编语言程序设计能力应用水平。 二、设施与环境 PC兼容机、Windows操作系统、汇编程序masm611 三、实验内容 编制一程序,要求接收从键盘输入的一个班的学生成绩,并寄存于  50字节的 GRADE  数组中,其中  GRADE+N  保留学号  N+1  的学生成绩。然后根据  GRADE 中的学生成绩,把学生名次填入  50字节的  RANK  数组中,其中  RANK+N  的内容 是学号为N+1学生的名次。再按学号把学生次序把学生名次显示出来 四、实验结果及剖析(包括①已达成什么功能,②怎样实现的、碰到的问题和解决办 法、流程图和重点代码解释,③收获和领会等) (1)达成的功能:动向输入学生学号和成绩,对学生成绩进行排序并设置名 次,再按学号把学生成绩和名次显示出来。 (2)实现办法:充分运用宏汇编实现回车换行、数据的输入和输出,使用过 程定义伪操作实现排名次和学生学号、成绩和名次的显示。 (3)流程图: 开始 调用input子程序 输入学号和成绩 Y 是否持续输入 ** N 调用rank子程序 成绩排序并设置名次 调用print子程序 按学号显示成绩和名次 结束 (4)重点代码: 1、数据段定义: DATASSEGMENT ndb0 mcdb50dup(0) cjdb50dup(?) xhdb50dup(?) m1 db13,10,'PleaseinputtheID:' ,13,10,'$' m2 db13,10,'Pleaseinputthemark:' ,13,10,'$' m3 db13,10,'Doyouwanttocontinue?,<y/n>' ,13,10,'$' s1db 13,10, '' ,13,10,'$' s2db 13,10,'ID mark rank ',13,10,'$' konggedb ' ','$' DATASENDS 2、数据输入、输出宏定义: shurumacro movah,1 int21h subal,30h cbw movbl,10 mulbl ** movdl,al movah,1 int21h subal,30h adddl,al endm shuchumacronum moval,num cbw movbl,10 divbl movbl,ah movdl,al adddl,30h movah,2 int21h movdl,bl adddl,30h movah,2 int21h endm 3、排序并设置名次: rankprocnear movah,0 moval,1 movsi,0 movcl,n movch,0 movdl,99 movbh,0 e1:pushcx e2:movbl,cj[si] cmpbl,dl jnee4 ** addmc[si],al addbh,1 cmpbh,1 jee6 jmpe4 e3:subal,1 e4:addsi,1 loope2 cmpbh,0 jnee5 popcx movbh,0 subdl,1 cmpdl,-1 movsi,0 jee7 jmpe1 e5:popax popcx movbh,0 subdl,1 cmpdl,-1 movsi,0 jee7 jmpe1 e6:addal,1 pushax jmpe3 e7:ret rankendp 4、按学号显示成绩和名次: printprocnear outputs1 outputs2 ** movcl,n movch,0 movsi,0 exit: shuchuxh[si] outputkongge shuchucj[si] outputkongge shuchumc[si] crlf addsi,1 loopexit ret printendp 5)运行结果截图: (6)收获和领会: 大一学习的是C语言,因此,在学汇编语言之初,面对格式之类的感觉很不 适应。C语言用的是一个又一个变量,而汇编语言则是利用一个又一个寄存器来实 现。而写代码的时候,经常会因为一些符号,或许字长的失误,完全是无心之失而 致使程序无法履行。而回过来找错误的时候,又往往忽略了这些细节而找不到错误 的本源。 ** 学习汇编是个艰辛的过程,从C语言到汇编的不适,到切记大量的指令,并 娴熟应用,都要花费好多时间适应。对有些指令的源操作数和目的操作数,以及操 作结果的寄存地点都要熟记于心。否则,你将很难应用这些指令,学习汇编的一个 重要能力就是可以娴熟调试所写程序,当某个程序不能履行时,而又发现

文档评论(0)

152****9740 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档