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

下载本文档

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

文档简介

院 系: 计算机科学学院 专 业: 计算机科学与技术 年 级: 2014级 课程名称: 汇编语言 学 号: 201421091069 姓 名: Qu 指导教师: 李娜 2015年 11 月 24 日年级2014级班号1403班学号专业计算机科学与技术姓名Qu实验名称8086汇编实验一 实验的基本要求与方法实验类型设计型综合型创新型实验目的或要求实验目的:实验是掌握汇编语言程序设计的步骤,学习使80X86汇编语言程序设计的基本方法和技能,熟练掌握用汇编语言设计、编码、调试和运行程序的方法,养成良好的程序设计习惯,为后续课程和将来相关的项目开发打下坚实的基础。1. 熟练操作宏汇编的开发环境,熟悉汇编语言的编译工具(MASM6.11)及调试器(Windbg)的使用。2. 掌握汇编语言的寻址方式和常用指令。3. 掌握汇编语言基本的程序设计方法和调试手段。4. 掌握子程序和宏指令的设计和调试手段。实验要求:1. 上机前应做好充分的准备。对选定的实验题要先进行设计包括程序框图、数据结构以及算法;上机之前先编好程序代码,并进行认真地静态检查,减少错误的发生,同时还有预先估计程序运行的结果或结果范围,做到心中有数。2. 上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在程序的调试过程中,有意识的学习及掌握Windbg程序的各种功能,以便掌握程序的调试方法和技巧。不互相抄袭,应自己动手按自己的算法编制程序,调试通过。3. 下机后要对实验结果进行整理,分析程序调试过程中所出现的各种情况,对未通过的程序更好认真分析原因,总结经验教训。实验题目1从键盘输入一同学的期中成绩、实验成绩、期末成绩和它们在总评成绩中分别占的百分比,计算得到该同学的总评成绩,并显示出来。实验要求:该程序提示输入3个成绩和所占百分比。可参考如下的例子显示:grade 1 ? 85percent 1 ? 20grade 2 ? 75percent 2 ? 20grade 3 ? 82percent 3 ? 60score is : 81提示: 总评成绩 (期中成绩百分比1实验成绩百分比2期末成绩百分比3)/100实验原理(算法流程)1、设计说明:用来说明程序的功能和结构,它包括:程序名、功能、原理及算法说明、数据结构及主要符号名说明等。程序名:计算总评成绩功能:由期中成绩、实验成绩、期末成绩及其各自所占的百分比根据公式(总评成绩 (期中成绩百分比1实验成绩百分比2期末成绩百分比3)/100)计算该同学的总评成绩原理:通过用户输入相应的成绩和相应的百分比通过公式计算算法说明:程序给用户提示相应的信息 用户根据提示输入信息 输入完毕,程序计算出相应的结果主要符号说明:g 表示分数 grade1表示期中成绩 grade2表示实验成绩 grade3表示期末成绩 p 表示百分比 percent1表示期中成绩百分比 percent2表示实验成绩百分比 percent3表示期末成绩百分比 grand4表示总评成绩2、使用说明:程序提供给用户使用时必须作出的说明。如:程序的使方法,调用方式,操作步骤等;要求输入信息的类型及格式;出错信息的含义及程序的使用范围等。使用方法:程序提示“请输入期中成绩”这时输入期中成绩,回车 提示“请输入期中成绩所占百分比”这时输入百分比(20%输入20),回车 提示“请输入实验成绩” 这时输入实验成绩,回车 提示“请输入实验成绩所占百分比”这时输入百分比(20%输入20),回车 提示“请输入期末成绩” 这时输入期末成绩,回车 提示“请输入期末成绩所占百分比”这时输入百分比(20%输入20),回车调用方式:通过赋值、加法、乘法、除法指令进行数据间的 运算操作步骤:根据使用方法所说步骤进行操作输入信息类型:分数输入整数,百分比也由整数代替,例:20%就输入20使用范围:生活中正常的分数计算都适用3、程序清单。.386.MODEL FLATExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORDINCLUDE io.h ; header file for input/outputcr EQU 0dh ; carriage return characterLf EQU 0ah ; line feed.STACK 4096 ; reserve 4096-byte stack.DATA ; reserve storage for datag BYTE 10 DUP(?)p BYTE 10 DUP(?)grade1 BYTE 请输入期中成绩:,0percent1 BYTE 请输入期中成绩所占百分比:,0grade2 BYTE 请输入实验成绩:,0percent2 BYTE 请输入实验成绩所占百分比:,0grade3 BYTE 请输入期末成绩:,0percent3 BYTE 请输入期末成绩所占百分比:,0grade4 BYTE 总评成绩:,0.CODE ; start of main program code_start: output grade1 input g,10 atoi g mov bx,ax output percent1 input p,10 atoi p mul bx mov cx,ax output grade2 input g,10 atoi g mov bx,ax output percent2 input p,10 atoi p mul bx add cx,ax output grade3 input g,10 atoi g mov bx,ax output percent3 input p,10 atoi p mul bx add ax,cx mov bx,100 div bx itoa g,ax output grade4 output g INVOKE ExitProcess, 0 ; exit with return code 0PUBLIC _start ; make entry point publicEND ; end of source code实验题目2找出一个一维数组中(数组元素个数为10)的最大值,并将这个最大值输出。1、设计说明:用来说明程序的功能和结构,它包括:程序名、功能、原理及算法说明、数据结构及主要符号名说明等。程序名:输出数组中最大值功能:对用户输入的数组挑选出最大值并输出原理:对数组中的数据,将第一个数与第二个数比较,如果第一个数大,就保留第一个数,并将第一个数与第三个数比较;如果第二个数大,就保留第二个数,并将第二个数与第三个数比较;依次循环下去直至数组末尾。算法说明:whilePos函数功能为用循环方式供用户将数据全部输入max函数为比较函数,进行数据之间的比较 next函数为数组增加函数,将数据向数组后面推进,进而将数组中所有的数据比较完毕主要符号:number 取数 nbrElts 数组长度 nbrArray 数据地址 bignum 最大值2、使用说明:程序提供给用户使用时必须作出的说明。如:程序的使方法,调用方式,操作步骤等;要求输入信息的类型及格式;出错信息的含义及程序的使用范围等。使用方法:根据程序的提示输入数据(每输入一个数都要回车),数据输入完毕,输入任意一个字母即可得到最大值调用方式:输入数组时循环调用whilePos函数 函数输入完毕后,调用max函数进行数据的比较 在比较的同时调用next进行数据地址的增加操作步骤:输入数据存入数组(每输入一个数据都要进行回车),输入完毕后输入任意字母(目的是跳出数据输入函数)即可进行数据的比较,最大值就会输出输入信息:十个数据(正整数)和一个字母(任意字母均可)3、程序清单。.386.MODEL FLATExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORDINCLUDE io.h ; header file for input/outputcr EQU 0dh ; carriage return characterLf EQU 0ah ; line feed.STACK 4096 ; reserve 4096-byte stack.DATA ; reserve storage for dataprompt1 BYTE 请输入一个整数(共十个):,0prompt2 BYTE 最大值为:,0number BYTE 20 DUP(?)bignum BYTE 20 DUP(?)nbrArray DWORD 20 DUP(?)nbrElts DWORD ?.CODE ; start of main program code_start: mov nbrElts,0 lea ebx,nbrArraywhilePos: output prompt1 input number,20 atod number jng endwhile mov ebx,eax inc nbrElts add ebx,4 jmp whilePosendwhile: mov eax,0 lea ebx,nbrArray mov ecx,nbrEltsmax: cmp ebx,eax jng next mov eax,ebx jmp nextnext: add ebx,4 loop max dtoa bignum,eax output prompt2 output bignum INVOKE ExitProcess, 0 ; exit with return code 0PUBLIC _start ; make entry point publicEND ; end of source code实验结果分析及心得体会内容包括:总结经验提高编程及调试能力。调试

温馨提示

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

评论

0/150

提交评论