资源描述:
《微机原理课程设计报告--简易计算器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计报告课程设计名称:简易计算器袁善系:三系学生姓名:班级:学号:成绩:指导教师:开课时间:2013-2014学年1学期目录讯十則二.主要内容三.具体要求四.进度安排五.成绩评定六.总体方案七.原理框图4八.系统模块详细设计与调试5一)系统模块详细设计51、设罝屏幕显示方式52、显示主菜单63、从键盘接收一个数字64、接收键入用于计算的数65、显示结果66、子程序A261、A3程序段7二)程序编译、运行与调试7九.运呼丁结果71.进入系统82.加法运算83.减法运算94.乘法运算95.除法运算106.退出系统10十.设计总结1
2、0H-一.参考文献11十二.附件材料11一.设计题目简易计算器二.主要内容编制一个程序,利用BIOS和DOS的屮断来设计一个计算器,要求在屏幕上显示一个主菜单,提示用户输入相应的数字键,分别执行加、减、乘、除四种计算功能和结束程序的功能。利用BIOS中断的10号功能调用来设置显示方式。利用DOS中断的01号和02号子功能來完成键盘接收,结果显示。三.具体要求编写一个程序,能从键盘上读入数据,并完成加、减、乘、除的计算。UI进度安排周一周二周三周四周五讲课设内容,安排任务查资料,确定硬件电路方案编程调试编程调试写总结报告五.成绩评定
3、考核方法:现场验收(占50%),课程设计报告(占50%)。考核内容:学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演示效果、设计报告质量。成绩评定:优,良,中,及格,不及格。特别说明:如发现抄袭,按照不及格处理。六.总体方案利用BIOS中断的10号功能调用来设置显示方式。利川DOS巾断的01号、02号子功能来完成键盘接受、结果显示。没置屏幕显示方式。MOVAH,00HMOVAL,NUM(NUM为显示方式属性字)INT10H接着从键盘上按受键值,并判别后转到相应的子模块进行运算,并显示结果。MOVAH,0111INT2
4、1H;AL=键入字符的ASCII码从键盘上接收一串字符串命令:MOVAH,OAHMOVDX,OFFSETBUF;BUF力数据段屮定义的数据缓冲区INT2111显示单个字符命令:MOVAH,02HINT21H显示一串字符串的命令:MOVAH,09HMOVDX,OFFSETBUE;BUF为被显示字符串的首地址INT21H十进制数显示过程:将十进制数送到BX巾,BX除以1000,余数送BX中,商在AL中,范围为0〜9,显示AL中的内容。BX除以100,余数送BX中,商在AL中,显示AL中的内容,依次类推,直到分出个位数字。如最高位为0,
5、则不应显示,而非最高位的0则显示。可利用设标志位并结合商的方法来决定是否显示0。提示输入第一个数(结束]八.系统模块详细设计与调试一)系统模块详细设计1、设置屏幕S示方式:MOVAll,OOHMOVAL,2INT10H通过调用BOIS的OOH号功能来设置屏幕显示方式。此处AL=2,即设置屏幕显示方式为80*25黑白文本。2、显示主菜单:MOVAll,09HMOVDX,OFFSETTOPINT21H先在数据段中定义主菜单中要显示的字符串,再通过调用DOS系统的09H号功能一一显示字符串(串尾字符为$,但不显示)來完成。3、从键盘接收
6、一个数字:MOVAH,O1HINT2111通过调用DOS系统的01H号功能——键入字符并回车来实现,其出口参数为键入字符的ASCII码,存在AL中。4、接收键入用于计算的数:MOVAH,OAHMOVDX,OFFSETBUF1通过调川DOS系统的OAH号功能一一键入字符串至内存缓冲区来实现,其入口参数如下:DS:DX=#放键入字符串的缓冲区的首地址;(DS:DX)=用户规定的缓冲区;(DS:DX+1)=实际键入的字符数;从(DS:DX+2)开始放键入的字符串。因此,在下而的程序屮运用所键入的数字时要注意字符串的首地址。5、S示结果:
7、MOVAH,09HMOVDX,OFFSETBUF3TNT21H将结果存入数据段中定义的缓冲区BUF3中,再通过调用DOS系统的0911号功能一一显示字符申(串尾字符为$,但不显示)来完成。6、子程序A2—一将数的ASCII码转为二进制数:A2PROCNEAR把BDF1+1屮的实际键入的字符数放入CLCH清零把第一个数字的地址放在BX保护BX保护ex把ASCII码转换为十进制存放十进制下一个数字的地址恢复CX恢复BX将累加和赋零MOVCL,BUEl+1MOVCH,0MOVBX,OFFSETBUF1+2PUSHBXPUSHCXLI:M
8、OVAL,[BX]ADAL,OFHMOV[BX],ALINCBXLOOPLIPOPCXPOPBXMOVAX,0MOVSI,10L2:MULSIADDAL,[BX]ADCAH,0INCBXLOOPL2;累加乘10L3:RET八2RNDP入口:十进制