欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    武汉理工微机原理数字累加求和课设报告.doc

    • 资源ID:9274006       资源大小:200.50KB        全文页数:23页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    武汉理工微机原理数字累加求和课设报告.doc

    武汉理工大学微机原理课程设计说明书目录摘要1 实验任务1.1 实验题目1.2 要求:2题目分析及方案选择3方案流程图3.1 方案分析3.2 流程图4.程序设计及分析4.1 输入程序4.2 求数字累加之和程序4.3 输出程序5.运行结果及分析6 心得体会7 参考文献附录摘要最近几十年,随着电子计算机的诞生和高速发展,社会和科技提到了前所未有的高度。计算机技术的发展所带来的信息技术的飞速发展,给人类社会带来了进步,给人们的生活生产发生了巨大深刻的变化。微机技术,在计算机发展过程中发挥了重要的作用。计算机在保持速度和性能的基础上,使得机器更加小巧。典型代表是PC机普及到各行各业的各个领域。而在工程领域,在微机基础上使用汇编语言程序可以基本地实现计算机控制工程的运行状况。同时可以实现自动的检验计算机从系统中采集的信息以判断系统是否处于稳定的工作状态并发出命令进行调试。从而实现采集信息,辨别信息,执行命令一体化,形成多功能的控制终端。 作为电气工程自动化的学生,微机原理是我们的专业课,学好和灵活应用微机技术对我们来说有着十分重要的意义。学习了微机原理和接口技术,对微机有了初步的了解。学习结束后,为提高和巩固专业知识,我们进行了微机原理课程设计,程序设计是指为计算机编写能够接受并执行、且具有实际意义的语句序列。汇编语言程序设计就是运用汇编语言进行程序设计。汇编语言程序设计有以下几种结构形式,有顺序结构,分支结构,循环结构,子程序调用个,系统功能调用等。根据结果要就需进行合理的选择才能建立正确的程序,子并且画出流程图进而完成题目任务。关键词:微机 汇编程序 流程图1 实验任务1.1 实验题目数字求和汇编语言程序设计 1.2 要求:(1)屏幕提示输入一个数字N(2位数); (2)计算S=1+2+3+N的和并输出求和结果S; (3)可连续输入数字进行计算,直至单击“Q”或“q”键退出程序。2题目分析及方案选择本次课设是在键盘中输入一个1到99的数,然后求出其累加之和,并显示出来。显然,在设计汇编程序过程中,程序代码要包括输入提示语句、求数字累加之和、将结果输出三个部分。考虑到我们用到的是16为汇编语言,而且寄存器有限,本题在编程序过程中会比较麻烦。在进行课设之前,思路如下:得出结果后,分析并完善程序将设计好的程序放到相应的环境里面运行并调试认真分析题目,设计具体方案根据所选方案设计程序流程图代码图1 思路流程图所以,开始编程序前做出了两个方案。方案一:由于本题要求是输入一个数,然后算出累加结果,我们可以先输入的值n后,通过累加算出从1加到n的值。此种方案程序计算量大,但程序简单。 方案二:在启动程序后,先将1到99的累加之和算出来,此处设为值A1,存在一定的位置,当得到输入n的之后,通过计算算出n到99的累加之和,此处设为值A2再通过A1减去A2得出加之和。此种方案计算量小,但程序复杂。 两种方案都可行,经过思考,由于我们需要重复进行输入输出操作,程序可重复利用,让程序简单易懂且程序小运行快,我们选择第一种方案。 3方案流程图 3.1 方案分析1、由于我们所选的方案是要将1到n的阶数之和给求出来,所以,我们需要先在汇编程序代码中实现可输入功能,即人机交互模式。这要求程序代码中有输入提示部分的程序。2、由于n是介于1到99之间的数,那么我们程序必须可以判断输入的n是否超出了计算范围,这就要求我们的程序中有一部分可以判断n是否处于计算范围内,且在超出范围时输入界面提醒用户输入错误。3、由于题目要求可连续输入,那么程序必须可以做到键入退出按键才能实现退出功能,否则视为继续输入计算。这就需要程序中设定退出功能以及可重复工作功能,实现用户使用时简单且方便。而在设置错误判断部分我们又有两种方案:、 通过累加求和后判断结果是否大于4050或者小于55.因为10加到n(10n99)的结果为55到4050之间,如果结果结果大于4050或者小于55那么则说明n的输入范围错误。、通过直接判定n是否处于10到99之间判定错误。而第一种方案需要占用的内存较大,且可使用的程序指令复杂,较少,不灵活。造成整体程序的设计工作量大,容易出现逻辑错误。而使用第二种方案主要原理为采用变量偏移地址内存进行比较判定是否出错。我们采用第二种方案。3.2 流程图 根据所设计好的方案和计划,设计出流程图。输入流程图如下:开始显示字符串 请输入一个数字键盘读入数据N 判断是否为q或者Q Y 结束 N 判断是都在1099中 N 报错Y 计算1N的累加之和数制转化并显示 图 2 输出流程图要求能够连续的输入数据进行计算,在此循环跳转。对输入数据进行了判断,符合要就在1099内则进行计算,并在屏幕上显示出计算结果,不在此范围内的输入报错,若为Q或q则直接退出程序,结束任务。计算部分流程图如图开始将ibuf+2便宜地址给si将0赋值给ax,1赋值给bxbl减去30H,将字符转换成数字bx是否为0输出转换ax清零将ax中内容赋值给cxbx加上ax存于ax中NY将最后一个字节赋值给$,以便将字符串输出N将ax与ax相与是否得0Y 结束图3 主程序流程图 输出流程图如下:开始 输出OUTPUT将bx赋值给dx输出结果跳转至start进行重复计算结束图4 输出流程图设计好流程图后,成功将程序的过程理清楚,给程序设计和调试带来了方便。 4.程序设计及分析4.1 输入程序 根据报告要求和设计的方案需要,设计了输入10到99的累加和程序段,并且判断是否出错的程序段,程序如下如下:lea dx,message ;输入提示语句mov ah,09h int 21h mov ah,07hint 21hcmp al,Q ;判定是否为Qje exit ;若是Q执行跳转 cmp al,q ;判定是否为qje exit ;若是q执行跳转 lea dx,inputmov ah,09hint 21hmov bl,0ffh mov ibuf+5,bl ;将ibuf里第三位数置为0ffhlea dx,ibuf mov ah,0ahint 21hmov si,dxmov bl,si+5cmp bl,0ffh ;与第三位进行比较判断是否有三位存在jne error ;判定是否出错mov bl,si+2 ;判定输入是否为小于10的数 cmp bl,30h ;十位跟零比较jna error ;小于等于0就跳到错误 cmp bl,3ah ;大于9就会错误 jnb error mov bl,si+3 ;个位跟零比较 cmp bl,2fh ;小于0就错误 jna errorcmp bl,3ahjnb errorjmp correcterror:lea dx,ERROR_MESS ;出错提示 mov ah,09hint 21hjmp startexit: mov ah,4chint 21h此段程序主要是将输入的数字移动到ibuf这个变量里然后进行判断输入的数字是否在允许计算范围内。si+5表示第三位,si+2表示第一位,si+3表示第二位,分别与这三位进行比较判定是否错误。4.2 求数字累加之和程序为求累加求和,设计了一下代码段:correct:mov cl,ibuf+1xor ch,chmov si,offset ibuf+2mov ax,0 ;循环运算前的初始化again: ; (0*10 * a0)*10 + a1)*10 + a2)mov dx,10mul dx ;在做乘法的过程中不用考虑dx,因为输入的数为099,所以dx总是为0mov bl,byte ptr si ;取出该字符的ASCLL码sub bl,30h ;将其减去30H得到数值add al,bl adc ah,0 ;在做加法是要考虑是否有进位inc siloop again mov cx,axmov ax,0mov bx,1 loop2: add ax,bxinc bxloop loop2;这个循环就实现了sum = 1 + 2 + . + n的操作了mov bx,offset obuf+7mov byte ptr bx,$;将最后一个字节赋值为$以便将数字字符串输出出来。mov cx,10jmp loop1loop1 : mov dx,0div cx ;(ax <- ax/10) ax 中存放的是商,汇编中16进制就可以当做10进制来运算add dl,30h ; dl中存放的是余数dec bx ;将指针前移一个字节mov bx,dl ;将余数放在字符串的末尾or ax,ax ;当ax为0时结束jnz loop1 ;当ZF=0时跳转,jump not zero dec bxmov byte ptr bx,0dhdec bxmov byte ptr bx,0ah ;在字符串的前面加上回车换行。此部分主要为计算1加到n的算法程序,而程序解释已写入代码中。4.3 输出程序 根据题目的要求,设计一下输出程序,程序段如下: lea dx,output ;输出提示 mov ah,09hint 21hmov dx,bxmov ah,09hint 21h ;显示字符串bxjmp start 而为了进行可连续重复计算所以最后加入jmp start指令。5.运行结果及分析将设计好的程序放在MFPCI98中运行,得到结果,满足任务书上的要求。 图3 运行结果 在运行程序后,在屏幕输出提示符if you want to quit, please press Q or q!和press other key to continue,当输入Q或者q时则视为退出程序,当输入一个小于10或者大于99的数时则视为输入错误,屏幕上会输出INPUT ERROR,PLERASE INPUT AGAIN,当输入一个大于10小于9的数,在屏幕上输出一个result=,其后所出现一个数,这个数就是计算结果。6 心得体会微机原理与接口技术是一门应用性,综合性,实践性较强的课程,通过有针对性的课程设计,使学生学会系统地运用所学的理论知识,提高学生在程序设计方面的开发与调试本领,系统地掌握微机原理的相应知识。此次课程设计,即霓虹灯显示程序设计要求在屏幕上显示文字或图像,并让这些文字或图像按照一定规律动态变化。从整个课程设计的角度上,我也遇到了很多问题,如怎样让文字显示的坐标代码显示出更美观的字体、怎样将图像转化为坐标代码以及以后编译过程出现得种种错误等等,但是通过网上查阅资料,查询相关书籍,请教同学,最终都得以解决。我想这就是课程设计的目的,它让我们学会学习,怎样查阅资料,怎样利用自己的已有知识,去获得自己未知的东西;让我们在实际的操作中学会排错、纠正的的方法。是我们工科学生必不可少的一门教学课程。总之,通过本次课程设计,我有机会将课堂上所学到的理论知识运用到了实际当中。并通过对知识的综合利用,进行了必要的分析,比较,提高了自己分析问题的能力,同时通过对编译软件和取模软件的使用,进一步增强了自己的动手能力。总之,这次课设让我受益匪浅,希望在今后的学习中自己能够做的更好。7 参考文献1 彭虎等编著微机原理与接口技术(第三版)北京:电子工业出版社,2008 2沈美明,温东禅IBM-PC汇编语句程序设计(第2版)北京:清华大学出版社,2001 3任向明,卢惠林汇编语言程序设计实用教程北京:清华大学出版社,2009 4马力妮80x86汇编语言程序设计北京:机械工业出版社,2004 附录data segment input db 0ah,0dh,"please input a number(199):$" obuf db 10 dup(?) ibuf db 7,0,6 dup(?)output db 0ah,0dh,result=$message DB 0ah,0dh,if you want to quit, please press Q/q ! DB 0ah,0dh,press other key to continue,0ah,0dh, $ERROR_MESS DB INPUT ERROR ,PLEASE INPUT AGAIN,0AH,0DH,$data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx,message ;输入提示语句mov ah,09h int 21h mov ah,07hint 21hcmp al,Q ;判定是否为Qje exit ;若是Q执行跳转 cmp al,q ;判定是否为qje exit ;若是q执行跳转 lea dx,inputmov ah,09hint 21hmov bl,0ffh mov ibuf+5,bl ;将ibuf里第三位数置为0ffhlea dx,ibuf mov ah,0ahint 21hmov si,dxmov bl,si+5cmp bl,0ffh ;与第三位进行比较判断是否有三位存在jne error ;判定是否出错mov bl,si+2 ;判定输入是否为小于10的数 cmp bl,30h ;十位跟零比较jna error ;小于等于0就跳到错误 cmp bl,3ah ;大于9就会错误 jnb error mov bl,si+3 ;个位跟零比较 cmp bl,2fh ;小于0就错误 jna errorcmp bl,3ahjnb errorjmp correcterror:lea dx,ERROR_MESS ;出错提示 mov ah,09hint 21hjmp startexit: mov ah,4chint 21hcorrect:mov cl,ibuf+1xor ch,chmov si,offset ibuf+2mov ax,0 ;循环运算前的初始化again: ; (0*10 * a0)*10 + a1)*10 + a2) mov dx,10 mul dx ;在做乘法的过程中不用考虑dx,因为输入的数为099,所以dx总是为0 mov bl,byte ptr si ;取出该字符的ASCLL码 sub bl,30h ;将其减去30H得到数值 add al,bl adc ah,0 ;在做加法是要考虑是否有进位 inc si loop again mov cx,ax mov ax,0 mov bx,1 loop2: add ax,bx inc bx loop loop2;这个循环就实现了sum = 1 + 2 + . + n的操作了 mov bx,offset obuf+7 mov byte ptr bx,$;将最后一个字节赋值为$以便将数字字符串输出出来。 mov cx,10jmp loop1 loop1 : mov dx,0 div cx ;(ax <- ax/10) ax 中存放的是商,汇编中16进制就可以当做10进制来运算 add dl,30h ; dl中存放的是余数 dec bx ;将指针前移一个字节 mov bx,dl ;将余数放在字符串的末尾 or ax,ax ;当ax为0时结束 jnz loop1 ;当ZF=0时跳转,jump not zero dec bx mov byte ptr bx,0dh dec bx mov byte ptr bx,0ah ;在字符串的前面加上回车换行。lea dx,output ;输出提示 mov ah,09hint 21hmov dx,bxmov ah,09hint 21h ;显示字符串bxj start code ends end start本科生课程设计成绩评定表姓 名性 别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日成绩评分表 项目 评分标准 得分 课 程 设 计 说 明 书 撰 写 60分 方案 论证 10分 能正确分析设计内容,算法选择合理,并有详细的说明、论证。 10X8 能分析设计内容,算法选择满足设计要求,有简单说明 7X4 设计方案不太满足设计内容及要求,无说明 3X0 流程图 设计 10分 流程设计正确,并有详细的说明,流程图绘制规范 10X8 流程设计符合设计内容及要求,并有一定说明,流程图绘制正确 7X4 流程设计不太满足设计内容及要求,且无说明,流程图绘制不太正确 3X0 软件 设计 说明 10分 程序设计关键问题或段落有详细说明,程序代码正确 10X8 程序设计关键问题或段落有说明,程序代码基本正确 7X4 程序设计关键问题或段落基本无说明,程序代码不完整或不太满足设计要求 3X0 结果 分析 10分 能正确记录调试结果,并能分析结果,给出合理的建议 10X8 能记录调试结果,并加以分析 7X4 记录调试结果,但无分析 3X0 心得 体会 10分 基本上真实、客观地反映了本人课程设计的收获、心得 10X6 无感而发,空洞,套话。 5X0 报告 规范 10分 完全按照报告格式要求,内容充实、详细,完全符合规范 10X8 基本按报告格式要求,内容完整,基本符合规范 7X4 未按报告格式要求,不太符合规范 3X0 程序调试 10分 程序上机调试运行结果完全正确 10X8 程序上机调试运行结果基本满足设计要求 7X4 程序上机调试运行结果不太满足设计要求 3X0 设计答辩 10分 能详细完整地表述设计内容,并能正确回答问题 10X8 能完整地表述设计内容,并能回答相关问题 7X4 基本表述设计内容,但不能回答相关问题 3X0 难度分值 10分 一十四题:7分 十五十七题:10分 纪律及考勤 10分 按照课程设计进度安排完成课程设计任务,按时参加中期检查及答疑、程序演示及答辩环节。缺席一次扣5分。 总评分数 优秀(10090) 良好(8980) 中等(7970) 及格(6960) 不及格(60以下)

    注意事项

    本文(武汉理工微机原理数字累加求和课设报告.doc)为本站会员(rrsccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开