华中科技大学汇编语言程序设计实验报告(三)程序执行时间和代码长度优化.docVIP

华中科技大学汇编语言程序设计实验报告(三)程序执行时间和代码长度优化.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华中科技大学汇编语言程序设计实验报告(三)程序执行时间和代码长度优化.doc

课程实验报告 课程名称: 汇编语言程序设计实验 实验名称:实验二 程序执行时间和代码长度优化 实验时间:2017-3-29, 14: 30-17: 30实验地点: 南一楼804室60号实验台 指导教师: 李专 专业班级:计算机科学与技术201502班 学 号: U201414596 姓 名: 卢振兴 同组学生: 无 报告日期: 2017年3月29日 原创性声明 本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用 已经在文屮指出。除文屮已经注明引用的内容外,本报告不包含任何其他个人或集体已经公 开发表的作品或成果,不存在剽窃、抄袭行为。 特此声明! 学生签名:卢振兴 日期:2017. 3. 29 成绩评定 实验完成质量得分(70分) (实验步骤清晰详细深入, 实验记录真实完整等) 报告撰写质量得分(30分) (报告规范、完整、通顺、 详实等) 总成绩(100分) 指导教师签字: 口期: 实验目的与要求 (1) 熟悉汇编语言指令的特点,掌握代码优化的基本方法; (2) 理解高级语言程序与汇编语言程序Z间的对应关系。 实验内容 任务1?观察多重循环对CPU计算能力消耗的影响 若有m个用户在同一台电脑上排队使用实验一任务四的程序,想要查询成绩列表中最 后一个学生“wangwu”的平均成绩,那就相当于将实验一任务四的程序执行了 m次。为了 观察从第一个用户开始进入查询至第m个用户查到结果之I可到底延迟了多少时I可,我们让 实验一任务四的功能二和功能三的代码重复执行m次,通过计算这m次循环执行前和执行 后的时问差,来感受其影响。由于功能一和功能四需要输入、输出,速度本来就较慢,所以, 没有纳入到这m次循环体内(但可以保留不变)。请按照上述设想修改实验一任务四的程序, 并将m值尽量取大(建议m=IOOO,具体数值依据实验效果来改变,逐步增加到比较明显 的程度,比如秒级延迟),以得到较明显的效果。 任务2?对任务1中的汇编源程序进行优化 优化工作包括代码长度的优化和执行效率的优化,本次优化的重点是执行效率的优化。 请通过优化m次循环体内的程序,使程序的执行时I可尽可能减少10%以上。减少的越多, 评价越高! 优化方法提示:首先是通过选择执行速度较快的指令来提高性能,比如,把乘除指令转 换成移位指令、加法指令等;其次,内循环体中每减少一条指令,就相当于减少了 mS条 指令的执行时间,需要仔细斟酌;第三,尽量采用32位寄存器寻址,能有更多的机会提高 指令执行效率。 任务3?观察用C语言实现的实验一任务四中功能一的程序与汇编语言实现的程序的差 异 用汇编语言和C语言分别实现实验一任务四中功能一的功能(对汇编语言而言,就是 把实验一屮相关程序摘取出来成为独立的程序),对比两种语言实现的程序的代码情况,观 察和总结C语言编写程序和白己的汇编语言程序的对应关系及差异,总结其屮可以简化的 地方。 实验过程 3.1任务1 3.1.1设计思想 在实验一任务4的基础上,加上一个COUNT变量作为计数器,用于循环执行功能二和 功能三。把计时子程序加入代码段当屮。 在功能二开始之前和功能四结朿之后分別调用该计时程序。在跳出COUNT控制的循环 后,将COUNT置回初值(本实验屮设置为8000)o 寄存器分配: 主要寄存器分配同实验一任务4,在COUNT控制的循环结束后,用DX临时存放数值 8000,并将值赋给COUNT,使其冋到初始值。 3.1.2流程图 在实验一任务四的源程序中加入由COUNT控制的循坏后,实验流程图如图2.1所示。 开始 图2.1观察多重循环对CPU影响流程图 3-1.3源程序 POIN DW 0 ;此行之前为任务一功能四相关定义 COUNT DW 8000 DATA ENDS I I I LEA DX,CRLF; MOV AH,9 INT21H ;此行Z前为任务一功能四相关代码 MOV AX, 0 CALL TIMER XUNHUAN: MOV CX,N INC CX LOOPA: DEC CX ;此行之后为任务一功能四相关代码 I I I MOV POIN, BP ;将该学生的起始偏移地址存入POIN中 CALLCALGR DEC COUNT ;m次计数递减 JNE XUNHUAN MOV AX,1 CALL TIMER MOV AL, DS:[BP + 3]; MOV DX, 8000 MOV COUNT, DX LEA DX, GRANOT;此行之后为任务一功能四相关代码 MOV AH, 9 INT21H I I I TIMER PROC PUSH DX PUSH CX PUSH BX MOV BX, AX MOV AH, 2CH INT 21H ;CH=hour(0-23),CL=minute(0-59

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档