武汉理工微机原理数字累加求和课设报告(DOC)

上传人:jiups****uk12 文档编号:90671309 上传时间:2019-06-14 格式:DOC 页数:22 大小:200.54KB
返回 下载 相关 举报
武汉理工微机原理数字累加求和课设报告(DOC)_第1页
第1页 / 共22页
武汉理工微机原理数字累加求和课设报告(DOC)_第2页
第2页 / 共22页
武汉理工微机原理数字累加求和课设报告(DOC)_第3页
第3页 / 共22页
武汉理工微机原理数字累加求和课设报告(DOC)_第4页
第4页 / 共22页
武汉理工微机原理数字累加求和课设报告(DOC)_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《武汉理工微机原理数字累加求和课设报告(DOC)》由会员分享,可在线阅读,更多相关《武汉理工微机原理数字累加求和课设报告(DOC)(22页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学微机原理课程设计说明书目录摘要1 实验任务1.1 实验题目1.2 要求:2题目分析及方案选择3方案流程图3.1 方案分析3.2 流程图4.程序设计及分析4.1 输入程序4.2 求数字累加之和程序4.3 输出程序5.运行结果及分析6 心得体会7 参考文献附录摘要最近几十年,随着电子计算机的诞生和高速发展,社会和科技提到了前所未有的高度。计算机技术的发展所带来的信息技术的飞速发展,给人类社会带来了进步,给人们的生活生产发生了巨大深刻的变化。微机技术,在计算机发展过程中发挥了重要的作用。计算机在保持速度和性能的基础上,使得机器更加小巧。典型代表是PC机普及到各行各业的各个领域。而在工程领

2、域,在微机基础上使用汇编语言程序可以基本地实现计算机控制工程的运行状况。同时可以实现自动的检验计算机从系统中采集的信息以判断系统是否处于稳定的工作状态并发出命令进行调试。从而实现采集信息,辨别信息,执行命令一体化,形成多功能的控制终端。 作为电气工程自动化的学生,微机原理是我们的专业课,学好和灵活应用微机技术对我们来说有着十分重要的意义。学习了微机原理和接口技术,对微机有了初步的了解。学习结束后,为提高和巩固专业知识,我们进行了微机原理课程设计,程序设计是指为计算机编写能够接受并执行、且具有实际意义的语句序列。汇编语言程序设计就是运用汇编语言进行程序设计。汇编语言程序设计有以下几种结构形式,有

3、顺序结构,分支结构,循环结构,子程序调用个,系统功能调用等。根据结果要就需进行合理的选择才能建立正确的程序,子并且画出流程图进而完成题目任务。关键词:微机 汇编程序 流程图1 实验任务1.1 实验题目数字求和汇编语言程序设计 1.2 要求:(1)屏幕提示输入一个数字N(2位数); (2)计算S=1+2+3+N的和并输出求和结果S; (3)可连续输入数字进行计算,直至单击“Q”或“q”键退出程序。2题目分析及方案选择本次课设是在键盘中输入一个1到99的数,然后求出其累加之和,并显示出来。显然,在设计汇编程序过程中,程序代码要包括输入提示语句、求数字累加之和、将结果输出三个部分。考虑到我们用到的是

4、16为汇编语言,而且寄存器有限,本题在编程序过程中会比较麻烦。在进行课设之前,思路如下:得出结果后,分析并完善程序将设计好的程序放到相应的环境里面运行并调试认真分析题目,设计具体方案根据所选方案设计程序流程图代码图1 思路流程图所以,开始编程序前做出了两个方案。方案一:由于本题要求是输入一个数,然后算出累加结果,我们可以先输入的值n后,通过累加算出从1加到n的值。此种方案程序计算量大,但程序简单。 方案二:在启动程序后,先将1到99的累加之和算出来,此处设为值A1,存在一定的位置,当得到输入n的之后,通过计算算出n到99的累加之和,此处设为值A2再通过A1减去A2得出加之和。此种方案计算量小,

5、但程序复杂。 两种方案都可行,经过思考,由于我们需要重复进行输入输出操作,程序可重复利用,让程序简单易懂且程序小运行快,我们选择第一种方案。 3方案流程图 3.1 方案分析1、由于我们所选的方案是要将1到n的阶数之和给求出来,所以,我们需要先在汇编程序代码中实现可输入功能,即人机交互模式。这要求程序代码中有输入提示部分的程序。2、由于n是介于1到99之间的数,那么我们程序必须可以判断输入的n是否超出了计算范围,这就要求我们的程序中有一部分可以判断n是否处于计算范围内,且在超出范围时输入界面提醒用户输入错误。3、由于题目要求可连续输入,那么程序必须可以做到键入退出按键才能实现退出功能,否则视为继

6、续输入计算。这就需要程序中设定退出功能以及可重复工作功能,实现用户使用时简单且方便。而在设置错误判断部分我们又有两种方案:、 通过累加求和后判断结果是否大于4050或者小于55.因为10加到n(10n99)的结果为55到4050之间,如果结果结果大于4050或者小于55那么则说明n的输入范围错误。、通过直接判定n是否处于10到99之间判定错误。而第一种方案需要占用的内存较大,且可使用的程序指令复杂,较少,不灵活。造成整体程序的设计工作量大,容易出现逻辑错误。而使用第二种方案主要原理为采用变量偏移地址内存进行比较判定是否出错。我们采用第二种方案。3.2 流程图 根据所设计好的方案和计划,设计出流

7、程图。输入流程图如下:开始显示字符串 请输入一个数字键盘读入数据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将最后一个字节赋值给$,以便将字符串输出

8、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 ex

9、it ;若是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

10、 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

11、 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 +

12、 . + 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 输出程序 根据题目的要求,设计一下输出程序,程序段如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号