版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
个人资料整理 仅限学习使用课程设计说明书题目: 简单计算器院 系:专业班级:学 号:学生姓名:指导教师:2018年12月31日个人资料整理 仅限学习使用安徽理工大学课程设计<论文)任务书计算机科学与工程学院硬件 教研室学号 学生姓名 专业<班级)设计题目设计技术参数
题目一:判断闰年题目二:简单计算器√题目三:代码转换程序题目四:字符图形程序题目五:学生成绩管理题目六:打字练习 (注:请在自己选做的题目后打√>1.熟悉汇编指令、宏汇编语言的编程方法2.BIOS中断调用、系统功能中断调用方法3.磁盘文件、及文件内容操作题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、系统功能调用、系统数据处理、文件数据处理而设计的,是对所学课程知识较为系统的应用。设由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重计点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。要不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善程求序。另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。工1.完成所选题目的软件设计。作2.课程设计说明书1000字<不包括程序源代码)左右。量工作第1次熟悉软件环境。第2次绘制程序流程图。第3次用编写程序。计第4次用调试运行程序。第5次编写课程设计说明书划参考资料
个人资料整理 仅限学习使用李敬兆等编.《汇编语言程序设计》.合肥:中国科学技术大学出版社,2008.9李敬兆等编.《汇编语言程序设计实验教程及习题解答》.合肥:中国科学技术大学出版社,2008.9王爽等编.《汇编语言》.北京:清华大学出版社,2003.5曹加恒等编.《新一代汇编语言课程设计》.北京:高等教育出版社,2003.6杨路明等编.《汇编语言程序设计》.长沙:中南大学出版社,2005.8詹仕华等编.《汇编语言程序设计》.北京:中国电力出版社,2008.2詹仕华等编.《汇编语言程序设计习题解答及课程设计、设计辅导》.北京:中国电力出版社,2008.2宋彩莉等编.《汇编语言程序设计学习指导》.西安:西安交通大学出版社,2008.2指导教师签字 教研室主任签字2018 年12月17日个人资料整理 仅限学习使用安徽理工大学课程设计 <论文)成绩评定表个人资料整理 仅限学习使用指导教师评语:成绩:指导教师:年 月日个人资料整理 仅限学习使用摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。本次设计的简单计算器支持简单的四则运算。关键词:汇编语言,简单计算器,高效,硬件个人资料整理 仅限学习使用AbstractAssemblylanguageisapowerfulprogramminglanguagefeatures,butalsoallthehardwarefeaturesofcomputerandcandirectlycontrolthehardwareofthelanguage.Assemblylanguage,asalanguage,correspondingtohigh-levellanguagecompiler,youneeda"assembler"totheassemblylanguagesourcefilecompiledintomachineexecutablecode.AdvancedassemblersuchasMASM,TASMassembler,andsoforustowritehigh-levellanguageoffersmanysimilarfeatures,suchasstructured,abstractandsoon.Insuchanenvironmentpreparedbytheassembler,alargepartofthedirectivefortheassemblerhasbeensimilarinthehigh-levellanguage.Nowthecompilationenvironmenthassuchahigh,evenifallwindowsinassemblylanguagetowriteapplicationsthatarefeasible,butthisisnotassemblylanguagestrengths.Thestrengthliesinassemblylanguagetowriteefficienthardwareandrequiresprecisecontrolofthemachineprocess.Thissimplecalculatordesignedtosupportsimplearithmetic.Keywords: assemblylanguage,simplecalculator,efficient,hardware个人资料整理 仅限学习使用目录1设计目的12概要设计22.1系统总体分析22.2主模块框图及说明23详细设计43.1主模块及子模块说明 43.2各模块详细设计 44.程序调试124.1运行界面分析124.2算法的分析124.3调试过程及分析 125心得体会135.1设计体会135.2系统改进13参考文献14个人资料整理 仅限学习使用设计目的通过本次的课程设计,使自己加深对汇编语言的了解,应用《汇编语言程序设计》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。通过本次课程设计的训练,可以使我在基本思路和基本方法上对基于8086/8088和基于 ARM核的汇编语言程序设计有一个比较感性的认识,并具备一定程度的设计能力,从而能够熟练掌握编写汇编语言源程序的基本方法和基本构架,学会编写顺序结构、分支结构、循环结构和子程序的汇编程序,掌握程序中数据的产生与输入输出的方法以及一些关于汇编语言更深层次方面有初步的认识。个人资料整理 仅限学习使用概要设计2.1 系统总体分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。本程序使用了函数和宏混用的方式实现了代码的较好的可读性,使程序看起来结构严谨。2.2 主模块框图及说明本程序的功能结构图如图 2-1:主程序清屏 进制转换 显示 计算图2-1 功能结构图程序流程图如图2-2:个人资料整理 仅限学习使用开始初始化是输入NUM1检验是不是数输入NUM2检验是不是数是选择运算符号减 加 乘 除否否操作数一除数是否为是否比二0大是是 将结果转化为十进制结束图2-2流程图个人资料整理 仅限学习使用详细设计3.1 主模块及子模块说明主模块:主要完成程序的主体框架结构,提供人 -程序的交互。子模块:主要完成对数据的加工,处理。3.2 各模块详细设计主模块:首先提供一个主界面,提示用户按要求输入具体的数据和所要进行的操作,输入完毕后给出结果。如果输入过程中发现非法输入,则立即给与提示,程序自动刷新界面,提示继续输入。整个过程按“ ESC”结束。流程图如下图 3-1:显示主界面,提示输入接受输入N判断输入提示出错,返回的合法性Y显示结果图3-1主模块流程图代码如下:个人资料整理 仅限学习使用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.MODELSMALL.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,0DHMSG3DB'PressESCtoExit!',0DH,0AH,'$'MSG4DB'Pressanykeytocontinue!',0DH,0AH,'$'MSG5DB'-','$'MSG6DB'.','$'MSG7DB'errorinput!','$'MSG8DB'data2iswrong!','$'NUM1DW?NUM2DW?个人资料整理 仅限学习使用子模块:完成对数据的进一步加工处理,转换格式并得出结果。首先根据输入调用对应的“+”、“-”、“*”、“/”四大函数模块,这是本程序的核心模块,其他部分的一些小模块都是为这几大模块服务的,大致的流程图如下图 3-2:接收用户的运算符号NY
判断合法性返回主界面调用对应模块运算数据,得出结果图3-2子模块流程图代码如下: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,则转移至J2JMPD2。如果不是数字,则转移至 D2J2:SUBAL,30HCBW。AL的内容符号扩展到 AHXCHGAX,BXMOVDI,10MULDIXCHGAX,BXADDBX,AXLOOPNEWCHAR1MOVNUM1,BXCURS11,41。设置光标位为<11,40),第二行MOVBX,0MOVCX,2NEWCHAR2:MOVAH,1。键盘输入并回显INT21H。DOS调用CMPAL,30H。与0的ASCII码比较JAEJ3。如果输入数字大于等于 0则跳转至J3JMPD2J3:CMPAL,39H。与9比较JBEJ4。如果小于或等于 9则跳转JMPD2。如果输入不是数字则跳转J4:SUBAL,30H。如果输入不是0-9,则转化成相应的字符CBW。将AL符号扩展到AHXCHGAX,BXMOVDI,10MULDIXCHGAX,BXADDBX,AX个人资料整理 仅限学习使用LOOPNEWCHAR2MOVNUM2,BXMOVAX,NUM1MOVBX,NUM2PUSHAXPUSHBXCURS15,33。设置光标的位置为<15.33),第三行DISPMSGMSG1。显示提示信息MOVAH,1。接受键盘输入并回显INT21H。DOS调用CMPAL,'+'JEADDI。如果运算符为+,则计算两数之和CMPAL,'-'JESUBT。如果运算符为-,则计算两数之差CMPAL,'*'JEMULT。如果运算符为*,则计算两数之积CMPAL,'/'JEDIVI。如果运算符为/,则计算两数之商CURS16,25。设置光标为<16,25)DISPMSGMSG2。在屏幕上输出提示信息JMPD1----------------------------------------。ADDTHETWODATASADDI:POPBXPOPAXADDAX,BX。计算两数字之和PUSHAXCURS14,41。设置光标位置为<14,41)POPAXCALLCHANGE。将结果转换为十进制数JMPD1SUBT:POPBXPOPAX个人资料整理 仅限学习使用CMPAX,BX。比较两数大小JAED0。如果AX>=BX则跳转XCHGAX,BXPUSHAXPUSHBXCURS14,40。设置光标位置为<14,40)DISPMSGMSG5。在屏幕上显示负号POPBXPOPAXD0:SUBAX,BX。计算两数之差PUSHAXCURS14,41。设置光标位置为<14,41)POPAXCALLCHANGE。将结果转换为十进制数JMPD1MULT:POPBXPOPAXMULBX。计算两数之积PUSHAXCURS14,41。设置光标位置为<14,41)POPAXCALLCHANGE。将结果转换为十进制数JMPD1DIVI:POPBXPOPAXCMPBX,0。判断除数是否为 0JEERROR。如果是0则跳转CWDDIVBX。计算两数之商PUSHDXPUSHAXCURS14,41。设置光标位置为<14,41)POPAXCALLCHANGE。将十六进制数转换为十进制数个人资料整理 仅限学习使用POPDXCMPDX,0JNELOP。如果DX不等于0则跳转JMPD1LOP:MOVCX,4。设置精确度为小数点后 4位PUSHDXDISPMSGMSG6。输出小数点POPDXCON:PUSHBXMOVAX,DXMOVBX,10MULBXPOPBXCWD。将AX的内容符号扩展到双字DIVBX。计算小数点后每一位的数字PUSHDXPUSHCXCALLCHANGE。将十六进制数转化为十进制数POPCXPOPDXCMPDX,0。判断是否已经计算到小数点后第六位JED1。如果是,则跳转LOOPCON。如果不是,就继续计算ERROR:CURS15,33。设置光标位置为<15,33)DISPMSGMSG8。提示出错D1:RETD2:PUSHAXPUSHBXCURS15,33。设置光标位置为<15,33)DISPMSGMSG7。提示输入出错POPBXPOPAXRETBEGINENDP个人资料整理 仅限学习使用4.程序调试4.1 运行界面分析运行界面如图 4-1图4-1运行界面在NUM1这一行会提示输入第一个数据,NUM2这一行提示输入第二个数据,输入完成两个数据后程序会提示允许输入运算符,输入无误后在RESULT行显示结果。4.2算法的分析本程序使用了宏和函数调用的方法,这样做使得整个程序体看上去严谨,舒服。整个程序中的 CHANGE子程序,将十六进制数转换为十进制数。 BEGIN子程序开始运算。DISPMSG子程序,显示用户界面。通过这几个及程序的协助,使得这个系统可以正常的运行。4.3 调试过程及分析编写完代码后分别点击按钮“C”,”L”,”R”,依次完成编译、连接和运行过程,也可以进入DOS环境下用DEBUG命令完成类似的功能,整个程序按“ESC”退出。个人资料整理 仅限学习使用个人资料整理 仅限学习使用心得体会5.1 设计体会本次课程设计我有不少收获:在选好了题目之后我查阅了不少资料,加深的对汇编语言的认识;在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络运营服务标准保障保证承诺书(3篇)
- 企业知识库构建与共享模板
- 网络付款安全保护保证承诺书(4篇)
- 客户关系管理CRM系统客户信息收集工具
- 2026年领导力提升培训计划方案
- 2026年小贷公司合规经营与小微客户服务升级
- 2026年二胎家庭长子心理适应辅导策略
- 2026年燃煤电厂掺氨燃烧改造项目商业计划书
- 历史辽、西夏与北宋并立课件2025-2026学年统编版七年级历史下册
- 社区新时代文明实践站工作实施方案
- 新能源电池检测服务协议
- 2026华泰证券招聘面试题及答案
- 在家输液协议书
- 农村宅基地执法培训课件
- 账号孵化合同范本
- 2025年及未来5年市场数据中国水族器材市场竞争态势及投资战略规划研究报告
- 建筑工程项目管理全过程指导手册
- 骨质疏松治疗仪相关课件
- JJG1036-2022天平检定规程
- 河北高职单招第二大类历年真题及答案
- 超级单品成就超级品牌报告鸭鸭羽绒服解数咨询
评论
0/150
提交评论