混合算术运算实训报告

上传人:枫** 文档编号:558916124 上传时间:2024-02-03 格式:DOC 页数:15 大小:810.52KB
返回 下载 相关 举报
混合算术运算实训报告_第1页
第1页 / 共15页
混合算术运算实训报告_第2页
第2页 / 共15页
混合算术运算实训报告_第3页
第3页 / 共15页
混合算术运算实训报告_第4页
第4页 / 共15页
混合算术运算实训报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《混合算术运算实训报告》由会员分享,可在线阅读,更多相关《混合算术运算实训报告(15页珍藏版)》请在金锄头文库上搜索。

1、 课程设计报告课程 微机原理课程设计 题目 混合算术运算的实现 系 别 物理与电子工程学院 年 级 08级 专 业 电子科学与技术 班 级 二 学 号 学生姓名 指导教师 居伟骏 职 称 讲师 设计时间 2011-4-2 2011-4-8 绪论2第一章 混合算术运算的分析和设计21.1混合算术运算的分析21.2 混合算术运算的设计31.2.1 对输入信息的判断41.2.2 算术的运算51.2.3 结果的输出62.1 程序汇编72.2 程序运行的结果显示如图7第三章 实训总结83.1 实训总结8主要参考文献10附录10绪论此次实训的内容为任意输入4个一位无符号十进制数,它们之间用“+”,“-”,

2、“*”号任意连接成为一个简单的算术运算式,要求按照算术运算法则计算得到正确结果。要求有输入提示信息,并且当输入算式不符合要求时能够输出提示信息,并要求重新输入。此过程自动重复进行,直到输入“$”符号时程序退出。本设计是利用汇编语言来实现算术运算,整个程序代码主要分为三个模块,即输入判断、运算、结果输出。利用汇编程序来实现混合算术运算时遇到的问题主要有怎样判别运算的优先等级、怎样判别符号的优先等级、不能连续输入数字和符号、首位必须是数字等等的问题。在本实训设计中将一一解决这些问题。第一章 混合算术运算的分析和设计1.1混合算术运算的分析设计题目要求有:当运行程序时有必要的输入提示信息、当输入算术

3、不符合要求时能够输出提示信息并要求重新输入、整个运算过程能够自动重复进行至输入“$”符号时退出程序。根据这些要求,我们对课题的初步分析是首先对输入的信息限定在一定的范围之内,保证输入的信息是题目要求的数字或者符号。设置两个存储区NUMB和MARK,前者用来存储数字,后者用来存储符号。再设置两个判断标志SIGN1和SIGN2,SIGN1用来保证不能连续输入数字和首位不能是符号,SIGN2保证程序运行时不能连续输入运算符号。例如当连续输入数字或者符号时,结果中会有输出提示信息:YOUR INPUT IS WRONG PLEASE AGAIN。当输入符号满足条件时,对符号设置优先级,并将其权值保存在

4、符号存储区中,当下一个符号要存储到符号存储区中时,现与前者进行比较如权值大于前者那么地址下一位存储,否则将前者的运算先进行计算并保存刚才的符号,数字存储区地址是随着符号存储区地址而变化的,直到当输入是“=”号时跳转到输出程序输出结果,然后继续接下来的运算直到输入 “$”时结束程序!1.2 混合算术运算的设计整个程序代码编写的思路可以通过下面的流程图1.2.1清晰的看出。 图1.2.1 混合算术运算流程图1.2.1 对输入信息的判断INPUT: ;对输入进行判断 MOV AH,1 INT 21H CMP AL,24H ;判断是否是$,是就退出程序 JE J_SHU1 CMP AL,3DH ;判断

5、是否是=号,是就跳转到PD JE JUD CMP AL,2AH ;判断是否是*号 JE JUD CMP AL,2BH ;判断是否是+ JE JUD CMP AL,2DH ;判断是否是- JE JUD CMP AL,30H ;判断是否小于0 JB BC CMP AL,39H ;判断是否大于9JA BC此段代码的作用就是将输入的信息限定在一定的范围之内,保证输入的是“*”、“+”、“”、“=”,以及数字09,从而更好的满足题目的要求。1.2.2 算术的运算MATCH PROC NEAR PUSH AX XOR AX,AX XOR BX,BX CMP CL,2AH ;乘法运算 JNE NEXT1 S

6、UB DI,2 XCHG BX,DI SUB DI,2 XCHG AX,DI MUL BX MOV DI,AX ADD DI,2 JMP FINISHNEXT1:CMP CL,2BH ;加法运算 JNE NEXT2 SUB DI,2 XCHG BX,DI SUB DI,2 ADD DI,BX ADD DI,2 JMP FINISHNEXT2:CMP CL,2DH ;减法运算 JNE FINISH SUB DI,2 XCHG BX,DI SUB DI,2 SUB DI,BX ADD DI,2FINISH: POP AX RETMATCH ENDP此段代码的作用是实现加、减、乘之间的算术运算。1.

7、2.3 结果的输出OUTPUT2: ;输出程序 SUB DI,2 CMP WORD PTRDI,0 ;判断结果的正负 JGE A NEG WORD PTRDI ;取补码 MOV DL,- MOV AH,2 INT 21HA: MOV BX,1000 ;AD是将运算结果按位取出并转化成ASCII码在屏幕上显示 MOV CX,4 MOV SI,0B: MOV AX,DI CWD DIV BX MOV DI,DX CMP AL,0 JNE C CMP SI,0 JNE C CMP CX,1 JE C JMP DC : MOV DL,AL ADD DL,30H MOV AH,2 INT 21HD: M

8、OV AX,BX MOV DX,0 MOV BX,10 DIV BX MOV BX,AXLOOP B此段代码的作用是将运算结果按位取出并转换成ASCII码在屏幕上显示第二章 程序的汇编和运行2.1 程序汇编混合算术运算整个程序代码编写完时,便进入了汇编程序。在汇编时也遇到了语法(汇编程序不能识别的语句)、指令跳转的范围(图2.1.1)、指定了非法类型(例如对一个过程指定BYTE类型,而不是NEAR或FAR)、使用寄存器出错、操作数类型说明等等问题。二解决这些问题就是在汇编过程中给出提示出错的地方,然后在返回到代码中对错误的地方进行一一仔细检查和认真思考。图2.1.12.2 程序运行的结果显示如

9、图图2.2.1 首位输入运算符有错误提示图2.2.2 混合算术运算图2.2.3 输入“$”时程序退出第三章 实训总结3.1 实训总结一个星期的微机原理课程设计就快要结束了,这期间有快乐有忧伤。由于微机原理这门课我们是上学期学的,所以这次的课程设计对我们来说还是有些难度的,毕竟许多知识因为掌握的不够牢靠都已经还给老师了,所以开始时我们并没有太大的信心。但学校这样安排肯定是有其中的道理的,我们也就只管静下心来好好做课程设计的了。我们这一组的设计题目是混合算术运算的实现,也就是用汇编语言来设计一个简易的计算器。拿到题目要求,按照我们一贯的思路,首先好好审题,认真读懂题目要求,明白我们所要设计的程序具

10、体应该实现什么样的功能理解这些之后,就是上网看看有没有什么可以帮助我们更好的解决问题的资料,找一些类似的设计资料来学习一下,看看别人的思路,看看我们可以从中借鉴哪些好的方法等等。很幸运的,我们在网上找到了一位网友上传的关于四则运算的设计报告,其中包含有流程图和源程序等,由于源程序过长,我们就先看了下他的流程图,大概理解了他那个题目的要求,然后我们准备也按他的思路来做,毕竟他的那个思路还是相当明朗的。我们先尝试了一下他的程序,发现汇编后有错误报告,后来经过我们查资料研究出来这个错误是由跳转指令jump产生的,由于源程序过长,jump所在的行数与它所要跳转过去的长度所隔甚远,导致跳转不到应该执行的

11、指令,然后我们在中间增添必要的跳转中转站来解决了这个问题。这个问题解决之后他的程序可以运行了,但还是有很多错误,不过所幸我们已经领会了这个设计思路了,这也是我们学到的只是吧!大概理清了自己的思路,下面我们开始编写代码,虽然网友的代码有错误,但可以供我们借鉴的还是有不少的,首先他的程序框架就很好啊!所以我们也懒得自己再去重新构造框架了,直接在这个网友的基础上改变了若干个指令来实现我们自己所需要的功能。这个过程其实是很痛苦的,偷懒还是要受惩罚的,因为不是我们自己编写的代码,所以有些语句我们还得花时间去理解它们,正是为了这个,我们的清明假期过的并不是那么的轻松。群策群力,集合着我们大家的智慧结晶,我

12、们终于在修改、尝试、修改中不断完善代码,最终达到了设计要求的功能。虽然我们很开心,觉得我们就快大功告成了,但因为老师的一句话,我们小组成员犹如被霜打过的茄子一样,老师过来才看了两行,就直接说:“你们这个是抄的啊!”虽然一班有人和我们做同一个课题,但我们也是将信用的,老师您说不能相互抄袭,我们怎么可能明知故犯呢?他们的程序我们压根就没看过,或许只网上有这么一个版本,所以出现了雷同的现象,但这个设计真的是我们自己在学习掌握的基础上自己完成的啊!虽然老师并没有承认我们,但我们自己承认自己,我们觉得这次实训的精髓我们领悟了,我们问心无愧。虽然我们的程序仍然有这样或那样的缺点和不足,但它仍然是符合了题目的要求,只是在源程序上显得比较繁琐,我们尽力想将代码改的精简一些,但往往弄巧成拙,结果不是太理想。这次实训不光是对我们所学

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

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

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