- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言计算器课程设计3np50o
设计目标运用汇编语言,制作一个计算的程序,实现简单计算器的一般功能,能够在DOS界面下进行简单的加、减、乘、除的简单计算。程序应有操作提示、输入和输出。自动闪烁光标,并提示输入信息。输入正确的数值等符号后可以进行正确的运算,程序计算其结果值并输出。程序无需查错功能,所输入的都是正确的四则运算表达式,并且表达式中运算分量均为无正负号整数,运算符为 +、-、*、/,最后结果以十进制数表示。且程序主界面需为一个由‘*’组成边框的矩形窗口。汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:能够直接访问与硬件相关的存储器或I/O端口;能够不受编译器的限制,对生成的二进制代码进行完全的控制;能够对关键代码进行更准确的控制;能够根据特定的应用对代码做最佳的优化,提高运行速度;能够最大限度地发挥硬件的功能。软件设计2.1程序设计的基本思想主模块:首先提供一个主界面,提示用户按要求输入具体的数据和所要进行的操作,输入完毕后给出结果。如果输入过程中发现非法输入,则立即给与提示,程序自动刷新界面,提示继续输入。计算显示完毕后,按提示选择是否要继续计算,不选择继续则结束。对屏幕上输入字符串的接受,为INPUT语句段,见源代码,主要是将数字和运算符分开存放。MATCH子程序,子程序内有三次跳转,将运算符选择正确的语句进行计算。由于操作符只有+、-、*、/,没有涉及到括号,不用考虑括号的匹配问题。流程图如下:图1 主模块流程图子模块:完成对数据的进一步加工处理,转换格式并得出结果。首先根据输入调用对应的“+”、“-”、“*”、“/”四个函数模块,这是本程序的核心模块,其他部分的一些小模块都是为这几个模块服务的,大致的流程图如下图2:图2 子模块流程图2.2代码STACK SEGMENT STACK DB 200 DUP(0)STACK ENDSDATA SEGMENT OPS DB ? OPD DB ? OPER DB ? TIT DB*********************************** ,0DH,0AH DB* Made By * ,0DH,0AH ;0DH代表回车 DB* Tong Xin Ji Suan Qi Xiao Zu * ,0DH,0AH ;0AH代表换行 DB* Chang qian Zuo xin Wang xin * ,0DH,0AH DB* Wang da yong Tang kuan long * ,0DH,0AH DB* + - * / * ,0DH,0AH DB* Y,y:continue N,n:quit * ,0DH,0AH DB*************Calculate*************$,0DH,0AH Tip1 DB Input the first operator (0---9):$,0DH,0AH Tip2 DB Please input the oper (+,- ,*,/) :$,0DH,0AH Error DB Error! Plese input the oper again:$,0DH,0AH Tip3 DB Input the second operator (0---9):$,0DH,0AH Result DB ---------------the result is:$,0DH,0AH Quit DB Choose repeat or quit? (Y/y/N/n) :$,0DH,0AH Tsave DB ?DATA ENDSCODE SEGMENT ASSUME CS: CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA ;初始化 DS:DX MOV DS,AXRemain: MOV BL,0 ;Oper(恢复)初始状态 MOV OPS,BL MOV OPER,BL MOV OPD,BL LEA SI,OPS ;OPS的偏移地址
文档评论(0)