您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理课设-加法练习程序
课程设计课程设计名称:微机应用系统课程设计专业班级:计科1204班学生姓名:张婷婷学号:201216010433指导教师:王锋课程设计时间:2014.12.22-2015.1.3计算机科学与技术专业课程设计任务书学生姓名张婷婷专业班级计科1204班学号201216010433题目加法练习程序设计课题性质A.工程设计课题来源自拟课题指导教师王锋同组姓名无主要内容随机给出百位数以内的加法算式,并提示输入答案,若正确给出正确提示,若错误给出错误提示,并提示输入答案;按R键继续下一题,按Q键返回DOS.任务要求一切以设计内容为前提进行课程设计实验:1.设计一个菜单,选项为加法和减法的练习。2.以获取系统中的秒和百分秒作为两个随机数进行加减运算。3.将输入的答案和运行结果比较,若相等给出正确提示,若错误给出错误提示,并继续输入答案直到正确为止。4.提示是否继续下一题,按R键继续下一题,按Q键返回DOS。参考文献1.《16/32位微机原理、汇编语言及接口技术(第2版)》---(北京电子工业出版社2003)钱晓捷,陈涛编著2.《32位微型计算机原理与接口技术》---(北京清华大学出版社2000)仇玉章等编著审查意见指导教师签字:教研室主任签字:2015年1月10日一.课程设计实验的目的课程设计的目的在于更好的锻炼我们的实践能力和考验平时学习的成果。我们是计算机专业,离不开编写代码。平时上课所学的知识来自于课本,上机实验相对比较少,所能锻炼的操作能力机会不多。而课程设计是让我们综合平时课本和实验的知识及经验,自己设计和构造,编写一个相对完整的程序。这不仅仅是对以前知识的巩固,更是锻炼我们的思维,我们的设计与编写程序的能力。对于我们以后将会从事的计算机类工作,这能很好的为我们打下坚实的基础,所谓积少成多,每学期都做课程设计,到毕业时我们对于编写一个应用软件或许就能较容易驾驭了。本次微机应用系统课程设计我的题目是加法练习程序设计,虽然只要求加法运算,但我在该程序里添加了减法运算,使得程序相对不会太单调。虽然给的编程题目可能会与别人一样,但每个人的想法不一样,在设计时添加自己的想法或许就能使程序更加完善了,这也是课程设计对我们的一种锻炼。二.实验设计的任务与要求加法练习设计程序的内容是:随机给出百位数以内的加法算式,并提示输入答案,若正确给出正确提示,若错误给出错误提示,并提示输入答案;按R键继续下一题,按Q键返回DOS。按照内容要求,在所学知识内容的基础上设计程序,具体的内容设计要求任务如下:1.设计一个菜单,选项为加法和减法的练习。2.以获取系统中的秒和百分秒作为两个随机数进行加减运算。3.将输入的答案和运行结果比较,若相等给出正确提示,若错误给出错误提示,并继续输入答案直到正确为止。4.提示是否继续下一题,按R键继续下一题,按Q键返回DOS。这次课程设计是在完成设计要求的基础上,添加了减法练习运算,以仔细、认真、规范的态度完成自己课程设计。三.实验设计的思想加法练习程序设计,主要工作是产生两个两位数的随机数进行加运算,而怎么产生随机数是该程序的难点。在搜集了一些资料后发现很多程序用的随机数是伪随机,是一个比较复杂算法,而不使用算法获得随机数的方法就是获取系统的时间。在翻阅课本后得知movah,2chint21h语句可以得到系统时间,在考虑后认为秒和百分秒比较适合,因为在短时间内这两个时间变化的多一些,比较适合用于随机数。Dh所存的数对应的是秒,Dl所存的数对应的是百分秒。加法直接将两个随机数相加即可,但减法就相对麻烦些,因为会出现第一个随机数比第二个随机数小得到结果为负数。为了解决这一问题,在数据段定义了两个变量,用来存放减数和被减数。在获取随机数时先不显示运算式,先将随机数的值给变量num1和变量mum2,如果相减结果小于0则转回去继续取随机数,直到取得随机数相减记过大于0,则显示运算式继续后面的程序运行。相对较难的部分解决后则是将整个程序流程串起来,先是显示选择加或减运算,产生的随机数并显示相应的运算式;再是输入结果,对结果进行判断给出对或错的提示,错误时提示继续输入结果,对则继续下一步;最后选择是否继续下一题,R返回最初加减运算选择,Q则退出。四.实验环境4.1运行环境(1)软件环境●操作系统:Windows7(2)硬件环境●处理器:InterCorei5●内存:4.00GB●硬盘空间:500GB4.2开发工具与编程语言(1)开发工具:MasmforWindows集成实验环境V2012(2)编程语言:汇编五.实验方案先是设计了一个菜单,用于选择进行加法运算还是减法运算,菜单显示来自数据段的字符串。选择后变转到jiafa或jianfa程序段中,调用产生随机数的random1(秒)和random2(百分秒)程序段中并显示运算式。将输入的答案通过show程序段将其转换成ASCII码显示出来,再由get程序段将输入的答案转换成对应的数,最后转换成数的答案与计算机运算结果比较,如果相减为0则对,提示correct,否则输入的答案是错的,提示error并让其继续输入答案直到正确为止。在答案正确后,提示“Continue(R)orExit(Q)?”是否继续下一题,按R继续下一题,按Q则返回DOS。六.实验流程图七.实验源代码DATASSEGMENTmsgdb'*******************************',0dh,0ah,'$'开始显示菜单减法练习算式加法练习算式输入结果选择继续下一题?判断结果对错?退出否是是否addpdb'*1.Additiontopractice*:',0dh,0ah,'$'subpdb'*2.Subtractiontopractice*:',0dh,0ah,'$'seledb'Inputyourchioce:','$'corrdb20h,20h,'Correct!',0dh,0ah,'$'errodb20h,20h,'Error!',0dh,0ah,'$'rorqdb'Continue(R)orExit(Q)?',0dh,0ah,'$'exitdb0dh,0ah,'Pressanykeytoquit...',0dh,0ah,'$'sumdw0num1dw0num2dw0DATASENDSSTACKSSEGMENTSTACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXagain:movdx,offsetmsgmovah,09hint21hmovdx,offsetaddpmovah,09hint21hmovdx,offsetsubpmovah,09hint21hmovdx,offsetmsgmovah,09hint21hselect:callhuanmovdx,offsetselemovah,09hint21hmovah,1int21hcmpal,31hjzjiafacmpal,32hcallhuanjzjianfagono:movdx,offsetrorqmovah,09hint21hkey:movah,1int21hcmpal,72hjzselectcmpal,71hjnzkeycallhuanmovdx,offsetexitmovah,09hint21hmovah,4chint21hjiafa:callhuancallrandom1movsum,axcallshowmovdl,'+'movah,2int21hcallrandom2addsum,axcallshowjmpnextjianfa:callrandom1movsum,axmovnum1,axcallrandom2sbbsum,axmovnum2,axcmpsum,0jljianfamovax,num1callshowmovdl,'-'movah,2int21hmovax,num2callshowjmpnextnext:movdl,'='movah,2int21hcallinputcmpbp,sumjzdonemovdx,offseterromovah,09hint21hjmpnextdone:movdx,offsetcorrmovah,9int21hjmpgonorandom1:movah,2chint21hmoval,dhmovah,0retrandom2:movah,2chint21hmoval,dlmovah,0retshow:movax,axaamorax,3030hxchgah,almovdx,axmovah,2int21hmovdl,dhint21hretinput:movbp,0movcx,3get:movah,0int16hcmpal,0dhjzokcmpal,'0'jbgetcmpal,'9'jagetmovah,0ehint10handax,0fhxchgbp,axmovbx,10mulbxaddbp,axloopgetok:cmpcx,3rethuan:movdl,0dhmovah,2int21hmovdl,0ahmovah,2int21hretMOVAH,4CHINT21HCODESENDSENDSTART八.实验结果图1菜单图2加法练习运算图3减法练习运算图4运算错误和退出九.实验总结加法练习程序设计可能较于平时的一些实验相对简单些,但这次的课程设计是由自己构思和设计的,遇到麻烦的地方也要靠自己去解决,不像平时实验那样,大家完成的内容都一样能够探讨。所以考验自我学习能力和编程能力,对程序结构流程的设计能力,做出自己满意的程序。通过课程设计,我们将本学期所学的微机原理、汇编语言的知识重新温习和巩固,加深了我们对知识的理解,熟练了汇编语言的运用,提高了我们的编程与设计能力。十.参考文献1.《16/32位微机原理、汇编语言及接口技术(第2版)》---(北京电子工业出版社2003)钱晓捷,陈涛编著2.《32位微型计算机原理与接口技术》---(北京清华大学出版社2000)仇玉章等编著
本文标题:微机原理课设-加法练习程序
链接地址:https://www.777doc.com/doc-5739113 .html