- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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语言到汇编的不适,到切记大量的指令,并
娴熟应用,都要花费好多时间适应。对有些指令的源操作数和目的操作数,以及操
作结果的寄存地点都要熟记于心。否则,你将很难应用这些指令,学习汇编的一个
重要能力就是可以娴熟调试所写程序,当某个程序不能履行时,而又发现
1亿VIP精品文档
相关文档
最近下载
- 2023河南省理工中等专业学校工作人员招聘考试真题.docx
- 沪教版九年级上册数学(全册知识点考点梳理、重点题型分类巩固练习)(提高版)(家教、补习、复习用).pdf VIP
- 学堂在线文物精品与文化中国(清华)期末考试答案.docx
- 《职业教育心理学》考试复习题库资料(含答案).pdf
- 2023年上海高考英语iread模考试卷第1期(23001)含答案与听力文本和音频(附在文末).pdf VIP
- 部编小学语文(2年级上册第2单元)作业设计2.pdf
- 基于51单片机智能垃圾桶控制系统的设计.docx
- 未成年人网络平台保护体系建设方案.pptx
- 2005长安福特福克斯维修手册原厂整合版.pdf
- 国家开放大学《古代诗歌散文专题》章节测试参考答案.pdf
文档评论(0)