资源描述:
《混合算术运算实训报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、常熟理工学院课程设计报告课程设计报告课程微机原理课程设计题目混合算术运算的实现系别物理与电子工程学院年级08级专业电子科学与技术班级二学号学生姓名指导教师居伟骏职称讲师设计时间2011-4-2~2011-4-815常熟理工学院课程设计报告绪论2第一章混合算术运算的分析和设计21.1混合算术运算的分析21.2混合算术运算的设计31.2.1对输入信息的判断41.2.2算术的运算51.2.3结果的输出62.1程序汇编72.2程序运行的结果显示如图7第三章实训总结83.1实训总结8主要参考文献10附录1015常熟理工学院课程设计报告绪论此次实训的内容为任意输
2、入4个一位无符号十进制数,它们之间用“+”,“-”,“*”号任意连接成为一个简单的算术运算式,要求按照算术运算法则计算得到正确结果。要求有输入提示信息,并且当输入算式不符合要求时能够输出提示信息,并要求重新输入。此过程自动重复进行,直到输入“$”符号时程序退出。本设计是利用汇编语言来实现算术运算,整个程序代码主要分为三个模块,即输入判断、运算、结果输出。利用汇编程序来实现混合算术运算时遇到的问题主要有怎样判别运算的优先等级、怎样判别符号的优先等级、不能连续输入数字和符号、首位必须是数字等等的问题。在本实训设计中将一一解决这些问题。第一章混合算术运算的
3、分析和设计1.1混合算术运算的分析设计题目要求有:当运行程序时有必要的输入提示信息、当输入算术不符合要求时能够输出提示信息并要求重新输入、整个运算过程能够自动重复进行至输入“$”符号时退出程序。根据这些要求,我们对课题的初步分析是首先对输入的信息限定在一定的范围之内,保证输入的信息是题目要求的数字或者符号。设置两个存储区NUMB和MARK,前者用来存储数字,后者用来存储符号。再设置两个判断标志SIGN1和SIGN2,SIGN1用来保证不能连续输入数字和首位不能是符号,SIGN2保证程序运行时不能连续输入运算符号。例如当连续输入数字或者符号时,结果中会
4、有输出提示信息:YOURINPUTISWRONGPLEASEAGAIN15常熟理工学院课程设计报告。当输入符号满足条件时,对符号设置优先级,并将其权值保存在符号存储区中,当下一个符号要存储到符号存储区中时,现与前者进行比较如权值大于前者那么地址下一位存储,否则将前者的运算先进行计算并保存刚才的符号,数字存储区地址是随着符号存储区地址而变化的,直到当输入是“=”号时跳转到输出程序输出结果,然后继续接下来的运算直到输入“$”时结束程序!1.2混合算术运算的设计整个程序代码编写的思路可以通过下面的流程图1.2.1清晰的看出。15常熟理工学院课程设计报告图1
5、.2.1混合算术运算流程图1.2.1对输入信息的判断INPUT:;对输入进行判断MOVAH,1INT21H15常熟理工学院课程设计报告CMPAL,24H;判断是否是‘$’,是就退出程序JEJ_SHU1CMPAL,3DH;判断是否是=号,是就跳转到PDJEJUDCMPAL,2AH;判断是否是*号JEJUDCMPAL,2BH;判断是否是+JEJUDCMPAL,2DH;判断是否是-JEJUDCMPAL,30H;判断是否小于0JBBCCMPAL,39H;判断是否大于9JABC此段代码的作用就是将输入的信息限定在一定的范围之内,保证输入的是“*”、“+”、“—
6、”、“=”,以及数字0~9,从而更好的满足题目的要求。1.2.2算术的运算MATCHPROCNEARPUSHAXXORAX,AXXORBX,BXCMPCL,2AH;乘法运算JNENEXT1SUBDI,2XCHGBX,[DI]SUBDI,2XCHGAX,[DI]MULBXMOV[DI],AXADDDI,2JMPFINISHNEXT1:CMPCL,2BH;加法运算JNENEXT2SUBDI,2XCHGBX,[DI]SUBDI,2ADD[DI],BXADDDI,2JMPFINISHNEXT2:CMPCL,2DH;减法运算JNEFINISH15常熟理工学院课
7、程设计报告SUBDI,2XCHGBX,[DI]SUBDI,2SUB[DI],BXADDDI,2FINISH:POPAXRETMATCHENDP此段代码的作用是实现加、减、乘之间的算术运算。1.2.3结果的输出OUTPUT2:;输出程序SUBDI,2CMPWORDPTR[DI],0;判断结果的正负JGEANEGWORDPTR[DI];取补码MOVDL,'-'MOVAH,2INT21HA:MOVBX,1000;A~D是将运算结果按位取出并转化成ASCII码在屏幕上显示MOVCX,4MOVSI,0B:MOVAX,[DI]CWDDIVBXMOV[DI],DX
8、CMPAL,0JNECCMPSI,0JNECCMPCX,1JECJMPDC:MOVDL,ALADDDL,30