- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
青 岛 理 工 大 学
课程实验报告
课程名称 汇编语言程序设计 班级 计算112 实验日期 2013.10.21 姓名 任师锋 学号 201107063 实验成绩 实验名称 循环结构程序设计 实
验
目
的
及
要
求 掌握循环结构程序设计的基本方法
掌握重复控制指令的使用
3、熟练掌握DEBUG工具的使用
实
验
环
境 平台:win7 64位
命令行方式
工具:MASM.EXE LINK.EXE DEBUG.EXE
DOSBOX(一款软件,模拟dos环境) 实
验
内
容 1、内存BUFF单元开始的存储区连续存放30个学生的某科分数,编写程序统计11,90~99,80~89,70~79,60~69和59以下分数段的人数,并把结果存放在RLT开始的单元。
2、使用DEBUG工具调试程序,查看程序运行结果。
算
法
描
述
及
实
验
步
骤
实验步骤:
根据流程图写源程序。
打开DOSBOX编译连接源程序。
找语法错误,若有则重复2.
Debug调试找逻辑错误,若有则重复1.
算法描述:(流程图)
调
试
过
程
及
实
验
结
果 实验过程中出现的问题:
虽然这次出现的问题不在逻辑上,但是也着实让人浪费了好长时间
出现的不能解决的问题是:程序反汇编时不执行MOV AX ,DESEG和MOV DS , AX这两个语句,而是直接跳过了。百思不得其解,最终还考老师妙手回春,成功解决。原因是在于:只要把最后的END 后的标号换成MOV AX , DSEG前的标号就可以了。
调试过程:
数据:
50,59,60,63,70,82,96,95,100,82,62,65,75,81
,95,64,35,26,79,85,100,51,54,87,49,98,89,75,81,95
调试截图:
1:反汇编,结合程序可知存放结果的偏移地址是:001E
2:比较地址指针和存放数据的末地址,小于则继续执行
3:然后比较指针执行内容和100的比较,图中可以看出50和100比较肯定小于,于是和90比较
4:依照3,依次类推,直到指针大于数据存放的末地址指针
5:RLT中依次存放的结果分别是100,90-100,80-90,70-80,60-70,和不及格六种情况的统计结果:
第二组测试数据:
65,69,60,63,70,42,96,35,10,82,62,65,75,81,95,
64,35,26,79,100,100,100,90,87,49,98,89,75,81
总
结
两组测试数据:均正确反应了成绩的统计结果:证明程序的逻辑是没有错误的。感觉不足点是程序写的太多,有点繁琐,不尽如人意。
这次实验,让我更加深刻掌握了循环程序设计的方法和他的一些伪指令的用法,让我对汇编程序的结构有了更深的了解。MASM5.0汇编必须要有这段指令,MOV AX , DSEG MOV DS ,AX 这是为了让程序知道段的基质,也应该在MOV AX ,DSEG前设一个标号,在程序最后ENG结束这个标号。
附
录
SSEG SEGMENT STACK
STK DB 50 DUP(0)
SSEG ENDS ;堆栈段定义结束
DSEG SEGMENT
BUFF DB 65,69,60,63,70,42,96,35,10,82,62,65,75,81,95,
64,35,26,79,100,100,100,90,87,49,98,89,75,81
BUFEND DB 95
RLT DB 6 DUP(0)
DSEG ENDS ;数据段定义结束
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
ASSUME SS:SSEG
BEGIN: MOV AX , DSEG
MOV DS , AX
LEA SI , BUFF;取BUFF的首地址
START: CMP SI , OFFSET BUFEND ;比较SI指针和最后地址
JA THEEND ;如果SI的指针大于BUFEND退出程序
MOV AL , [SI]
CMP AL , 100
JNZ NEXT1
INC RLT+0 ;自增1
INC SI ;指针加1
JMP START
NEXT1: CMP AL , 90
JL NEXT2
INC RLT+1;自增1
INC SI
JMP START
NEXT2: CMP AL , 80
JL NEXT3
INC RLT+2;自增1
INC SI
JMP START
NEXT3: CMP AL , 70
JL NEXT4
INC RLT+3;自增1
INC SI
JMP START
NEXT4: CMP AL , 6
您可能关注的文档
最近下载
- 职场心理学培训课件.pptx VIP
- 第一单元作文“青春情怀”导写及范文 统编版高中语文必修上册.docx VIP
- 2024年大学毕业生薪资待遇与行业发展报告.pptx VIP
- 2025年新版招聘看护队考试题及答案.pdf VIP
- 2025最新小学“学宪法讲宪法”知识竞赛试题库及答案.docx VIP
- 博饼规则(含图及奖品分布).xls VIP
- 2024年~2016年历年事业单位场监督管理局面试真题及答案解析18套.docx VIP
- 从商业角度看《孙子兵法》受日本人喜爱的原因.docx VIP
- 抗精神药物常见不良反应.pptx VIP
- 统编版高中语文必修上册第一单元“青春价值”单元主题作文导写及范文赏析3篇.docx
文档评论(0)