您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 汇编语言课程设计四则运算计算器
1*******************实践教学*******************兰州理工大学技术工程学院2013年春季学期汇编语言实训课程设计题目:四则运算计算器专业班级:计算机科学与技术姓名:___郭利强_____学号:11730108指导教师:刘树群成绩:2计算机科学与技术专业(11级)汇编语言实训课程设计任务书题目:四则运算计算器班级:11计算机科学与技术1班学生姓名:郭利强学号:11730108题目类型:软件工程(R)指导教师:刘树群一.题目简介四则运算计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对汇编语言基本语言要素和流程结构的理解,针对汇编语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。得到软件工程的综合训练,提高解决实际问题的能力。二.设计任务1、查阅文献资料,一般在5篇以上;2、要求可以进行四则运算;3、完成软件结构设计和算法设计;4、完成系统的软件开发和测试工作;5、撰写设计说明书;6、做好答辩工作。三.主要内容、功能及技术指标1、实现功能及指标:①使用Win32的窗口程序模式,实现四则运算程序的设计与开发;②界面友好。2、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构3清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。3、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。4、上机前程序静态检查:上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。把程序中的明显错误事先排除。5、程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。6、完成课程设计报告①需求和规格说明:设计题目和问题描述:题目要解决的问题是什么;②设计思路:主要算法思想,程序功能图,函数之间的调用关系图;设计表示:每个函数或过程的功能,列出每个过程或函数所调用的过程或函数,并画出各函数的流程图;详细设计:主要算法的伪代码;③调试报告:调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等;④程序实现注释;⑤附录:源程序清单和结果。如果题目规定了测试数据,则结果要求包含这些测试数据和运行输出,当然还可以含其他测试数据和运行输出。四.提交的成果1.设计说明书一份,内容包括:1)中文摘要100字;关键词3-5个;2)前言;43)系统分析(包含需要的系统流程图);4)系统总体设计(包含总体软件结构图、总体数据结构);5)详细设计;6)系统测试(包含测试方案、测试用例、测试结果及软件可靠性分析);7)软件使用说明书(核心界面说明);8)设计总结、参考文献、致谢等。2.刻制光盘一张。五.主要参考文献[1]李敬兆等编.《汇编语言程序设计》.合肥:中国科学技术大学出版社,2008.9[2]李敬兆等编.《汇编语言程序设计实验教程及习题解答》.合肥:中国科学技术大学出版社,2008.9[3]王爽等编.《汇编语言》.北京:清华大学出版社,2003.5[4]曹加恒等编.《新一代汇编语言课程设计》.北京:高等教育出版社,2003.6[5]杨路明等编.《汇编语言程序设计》.长沙:中南大学出版社,2005.8[6]詹仕华等编.《汇编语言程序设计》.北京:中国电力出版社,2008.2[7]詹仕华等编.《汇编语言程序设计习题解答及课程设计、设计辅导》.北京:中国电力出版社,2008.2[8]宋彩莉等编.《汇编语言程序设计学习指导》.西安:西安交通大学出版社,2008.25摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。本次设计的简单计算器支持简单的四则运算。关键词:汇编语言,四则运算计算器,高效,硬件6目录摘要.............................................5一系统分析......................................7二系统总体设计..................................82.1系统总体分析..................................82.2主模块框图及说明............................8三、详细设计....................................103.1主模块及子模块说明............................103.2各模块详细设计...............................10四、程序调试....................................194.1运行界面如图...............................194.2算法的分析................................195.3调试过程及分析............................19设计总结........................................20参考文献........................................21致谢............................................2271系统分析该课程设计的任务是做一个简易计算器,可以实现加减乘除四则运算。我们要解决的问题有:以什么方式输入数字、判断是进行什么运算、运算过程中的进位和借位问题以及如何实现清屏等问题。本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。本程序使用了函数和宏混用的方式实现了代码的较好的可读性,使程序看起来结构严谨。82系统总体设计2.1系统总体分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。本程序使用了函数和宏混用的方式实现了代码的较好的可读性,使程序看起来结构严谨。2.2主模块框图及说明本程序的功能结构图如图2-1:图2-1功能结构图主程序清屏进制转换显示计算9程序流程图如图2-2:输入NUM1初始化检验是不是数输入NUM2否是是是检验是不是数是开始选择运算符号减加乘除操作数一是否比二大除数是否为0将结果转化为十进制结束否103详细设计3.1主模块及子模块说明主模块:主要完成程序的主体框架结构,提供人-程序的交互。子模块:主要完成对数据的加工,处理。3.2各模块详细设计主模块:首先提供一个主界面,提示用户按要求输入具体的数据和所要进行的操作,输入完毕后给出结果。如果输入过程中发现非法输入,则立即给与提示,程序自动刷新界面,提示继续输入。整个过程按“ESC”结束。流程图如下图4-1:NY图3-1主模块流程图显示主界面,提示输入接受输入判断输入的合法性显示结果提示出错,返回11代码如下:CURSMACROA,BMOVAH,2;置光标位置MOVBH,0;页号为0MOVDH,A;设置光标的坐标为(A.B)MOVDL,BINT10H;BIOS调用ENDM;-------------------------------DISPMSGMACROMESSAGELEADX,MESSAGE;传递MESSAGE的偏移地址MOVAH,9;显示字符串INT21H;DOS调用ENDM;----------------------------------CLEARMACROCOLOR;清屏MOVAH,6;屏幕初始化MOVAL,0;页号MOVCH,0;设置左上角的坐标为(0,0)MOVCL,0MOVDL,100;设置右上角的坐标为(100,100)MOVDH,100MOVBH,COLOR;卷入行属性INT10H;BIOS调用ENDM.MODELSMALL12.STACK.DATA;数据段定义MSG0DB'********************',0DH,0AH;,0dh,0ah,0dh,0ahDB'**',0DH,0AH;db'**',0dh,0ah;db'**',0dh,0ahDB'*--------caculater--------*',0DH,0AH;,0dh,0ah,0dh,0ahDB'**',0DH,0AHDB'**',0DH,0AHDB'**',0DH,0AHDB'*NUM1:'DB'*',0DH,0AH;,0dh,0ah,0dh,0ah,0dhDB'**',0DH,0AHDB'**',0DH,0AHDB'**',0DHDB'*NUM2:'DB'*',0DH,0AH;,0dh,0ah,0dh,0ah,0dhDB'**',0DH,0AHDB'**',0DH,0AHDB'**',0DHDB'*RESULT:'DB'*',0DH,0AH,0DH;,0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dhDB'**',0DH,0AHDB'**',0DH,0AHDB'**',0DH,0AHDB'**',0DH,0AHDB'**',0DH,0AHDB'********************','$'MSG1DB'choose+,-,*,/','$'MSG2DB'youchoosewrong','$',0AH,0DH13MSG3DB'PressESCtoExit!',0DH,0AH,'$'MSG4DB'Pressanykeytocontinue!',0DH,0AH,'$'MSG5DB'-','$'MSG6DB'.','$'MSG7DB'errorinput!','$'MSG8DB'data2iswrong!','$'NUM1DW?NUM2DW?子模块:完成对数据的进一步加工处理,转换格式并得出结果。首先根据输入调用对应的“+”、“-”、“*”、“/”四大函数模块,这是本程序的核心模块,其他部分的一些小模块都是为这几大模块服务的,大致的流程图如下图3-2:NY图3-2子模块流程图接收用户的运算符号判断合法性返回主界面调用对应模块运算数据,得出结果14代码如下:BEGINPROCNEARBACK:CLEAR1EHCURS2,20;设置光标为(2.20)DISPMSGMSG0;显示用户界面CURS8,41;设置光标为(8,41),第一行MOVBX,0MOVCX,2NEWCHAR1:MOVAH,1;键盘输入并回显INT21H;DOS调用CMPAL,30H;检查输入的字符是不是数字JAEJ1;如果不是,则转移至J1JMPD2;是,转移到D2执行J1:CMPAL,39H;与9的ASCII比较JBEJ2;如果输入的字符是0-9,则
本文标题:汇编语言课程设计四则运算计算器
链接地址:https://www.777doc.com/doc-2722904 .html