《汇编语言》实验报告模板实验一_第1页
《汇编语言》实验报告模板实验一_第2页
《汇编语言》实验报告模板实验一_第3页
《汇编语言》实验报告模板实验一_第4页
《汇编语言》实验报告模板实验一_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

院系:计算机科学学院专业:年级:课程名称:汇编语言学号:姓名:指导教师:2015年月日

年级

2013级班号

学号

专业

姓名实验名称8086汇编实验一实验的基本要求与方法实验类型设计型综合型创新型√实验目的或要求实验目的:实验是掌握汇编语言程序设计的步骤,学习使80X86汇编语言程序设计的基本方法和技能,熟练掌握用汇编语言设计、编码、调试和运行程序的方法,养成良好的程序设计习惯,为后续课程和将来相关的项目开发打下坚实的基础。熟练操作宏汇编的开发环境,熟悉汇编语言的编译工具(MASM6.11)及调试器(Windbg)的使用。掌握汇编语言的寻址方式和常用指令。掌握汇编语言基本的程序设计方法和调试手段。掌握子程序和宏指令的设计和调试手段。实验要求:上机前应做好充分的准备。对选定的实验题要先进行设计包括程序框图、数据结构以及算法;上机之前先编好程序代码,并进行认真地静态检查,减少错误的发生,同时还有预先估计程序运行的结果或结果范围,做到心中有数。上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在程序的调试过程中,有意识的学习及掌握Windbg程序的各种功能,以便掌握程序的调试方法和技巧。不互相抄袭,应自己动手按自己的算法编制程序,调试通过。下机后要对实验结果进行整理,分析程序调试过程中所出现的各种情况,对未通过的程序更好认真分析原因,总结经验教训。实验题目1从键盘输入一同学的期中成绩、实验成绩、期末成绩和它们在总评成绩中分别占的百分比,计算得到该同学的总评成绩,并显示出来。实验要求:该程序提示输入3个成绩和所占百分比。可参考如下的例子显示:grade1?85percent1?20grade2?75percent2?20grade3?82percent3?60scoreis:81提示:总评成绩=(期中成绩×百分比1+实验成绩×百分比2+期末成绩×百分比3)/100实验原理(算法流程)1、程序清单。

数据段:.DATA;reservestoragefordatagrade1DWORD?grade2DWORD?grade3DWORD?stringBYTE20DUP(?)prompt1BYTE"Pleaseinputthegrade1:",0prompt2BYTE"Pleaseinputthepercentofthegrade1:",0prompt3BYTE"Pleaseinputthegrade2:",0prompt4BYTE"Pleaseinputthepercentofthegrade2:",0prompt5BYTE"Pleaseinputthegrade3:",0prompt6BYTE"Pleaseinputthepercentofthegrade3:",0prompt7BYTE"Theresultis:",cr,lf,0sumDWORD?resultBYTE20DUP(?)BYTEcr,lf,0代码段:.CODE;startofmainprogramcode_start:outputprompt1inputstring,20;输入期中成绩1atodstring;转换为整型movgrade1,eaxoutputprompt2inputstring,20;输入百分数1atodstring;转换为整型mulgrade1;计算grade1*percent1movsum,eaxoutputprompt3inputstring,20;输入grade2atodstring;转换为整型movgrade2,eaxoutputprompt4inputstring,20;输入percent3atodstring;转换为整型mulgrade2;计算grade2*percent2addsum,eaxoutputprompt5inputstring,20;输入grade3atodstring;转换为整型movgrade3,eaxoutputprompt6inputstring,20;输入percent3atodstring;转换为整型mulgrade3;计算grade3*percent3addsum,eaxmoveax,summovsum,100divsum;eax/100dtoaresult,eaxoutputprompt7outputresultINVOKEExitProcess,0;exitwithreturncode0PUBLIC_start;makeentrypointpublicEND;endofsourcecode2、执行结果截图实验题目2(附加题)编写一个过程Max3,该过程可以找出一个一维数组中(数组元素个数为10)的最大值,并将这个最大值放在ax寄存器中。(1)数组元素的存储空间是字。(2)编写一个完整的主程序,在主程序完成数组的输入和存储,并调用子过程完成最大值的搜索工作。1、程序清单。

数据段:.DATA;reservestoragefordatapromptBYTE"从键盘输入10个数据存入一堆数组中,并输出数组中的最大值。",cr,lf,0numberBYTE20DUP(?)array1DWORD10DUP(?)resultBYTE"Themaxis:",cr,lfmaxDWORD?BYTEcr,lf,0代码段:.CODE;startofmainprogramcodeMax3PROCNEAR32cmpvalue,10;判断此时的数是否是第一个数jneenddmovvalue,eax;将数组中的第一个数存入valueendd:cmpvalue,eax;比较数组中的数与value比较jgendmax;若value>eax则跳出movvalue,eax;若value<eax则将数组中的数存入valueendmax:retMax3ENDP_start:outputpromptmovecx,10leaebx,array1;取有效地址fornumber:inputnumber,20atodnumbermov[ebx],eax;将数据存入数组中addebx,4;读取数组中的下一项的地址callMax3;调用过程体loopfornumberendfor:moveax,valuedtoamax,eaxoutputresult;输出最大值INVOKEExitProcess,0;exitwithreturncode0PUBLIC_start;makeentrypointpublicEND;endofsourcecode2、执行结果截图实验结果分析及心得体会内容包括:总结经验提高编程及调试能力。调试情况,如上机时遇到的问题及解决的办法,观察到的现象及其分析,对程序设计技巧的总结

温馨提示

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

评论

0/150

提交评论