汇编语言简单计算器程序毕业课程设计报告[1]

合集下载

汇编语言程序设计————计算器

汇编语言程序设计————计算器

课程设计说明书题目: 表达式计算器学号:班级: 计算机创新实验班姓名:廖福轩目录一.设计内容 (2)二.设计方案 (2)1、主程序模块、 (2)2、赋权值模块、 (2)3、加减乘除运算子程序模块、 (2)4、调用赋权宏子程序模块、 (2)5、回车换行宏模块、 (2)6、9号功能显示字符串宏模块、 (2)三.设计框图 (3)四.程序代码 (4)五.运行结果 (9)六.设计总结 (9)计算器汇编语言程序设计一.设计内容从键盘输入一个十进制两位数的四则运算表达式,如23*56-(8*19)/6+67-8=,编程计算表达式的值,输出十进制结果(有可能就是三位或四位十进制),+-*/位置任意。

并要求程序能反复执行直道对“还要继续不?(y/n)”之类的提示回答“n”或“N”为止。

四则运算主要包括以下几个模块:(1)主程序模块、(2)赋权宏模块、(3)加减乘除运算子程序模块、(4)调用赋权宏子程序模块、(5)回车换行宏模块、(6)9号功能显示字符串宏模块、二.设计方案1、主程序模块、主程序初始化数据段,调用显示宏show显示界面,输入字符或数字并判断,调用子程序dyfq调用赋权宏fq为符号赋权,从而判断优先级,调用加减乘除运算子程序ys对判断出的相应运算符进行运算,输出运算结果,判断就是否继续,继续则返回输入,不继续则退出程序、2、赋权宏模块、通过定义宏fq,定义了变元a,b进行参数传递,并使用替换运算符&使变元a与标号s对应、接着给对应的符号赋予权值,将其权值存入ch中、3、加减乘除运算子程序模块、运算模块实现了将ax入栈保存,然后将ax,bx赋值为0,判断cl中的符号就是否为乘号*,若为乘号*则将number中的数字与其下一位的数字相乘,并把结果存入该位置,类似的若不为乘号*则接着判断就是否为除号/,若为除号/则进行除法运算,然后判断就是否为加法,为加法则进行加法运算,接着判断就是否为减法,为减法则进行减法运算并将结果存入当前的计算的第二个数的位置、4、调用赋权宏子程序模块、该模块实现了调用赋权宏fq为(,),*,/,+,-,=等符号分别赋权值为5,1,4,4,3,3,0、从而可以通过设定的权值来判断优先级、5、回车换行宏模块、通过2号功能的输出功能,将0dh赋予dl输出,再调用2号功能,将0ah赋予dl输出,从而实现回车换行功能、6、9号功能显示字符串宏模块、通过定义宏show,用9号显示功能,通过变元str将字符串显示出来。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是计算机中最基本的语言,通常用于处理硬件相关问题。

在这个实验中,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

以下是我们的实验报告。

正文:1. 实验环境我们使用的实验环境是Intel 8086微处理器与高级汇编语言。

微处理器使用的是PCB-512主板,而高级汇编语言是MASM。

2. 实验目的我们的实验目的主要是学习汇编语言的基础知识和编程技巧,包括了汇编语言的寄存器、指令、内存管理等方面的知识。

我们的另一个目的是掌握汇编语言的常用编程技巧,能够独立完成一些简单的汇编程序。

3. 实验内容我们的实验内容主要包括以下几点:(1)学习汇编语言的基础知识,包括寄存器、指令、内存管理等方面的知识。

(2)掌握汇编语言的常用编程技巧,包括数据输入输出、运算、跳转等基本操作。

(3)实践用汇编语言编写程序,如计算器、菜单等实用程序。

(4)了解8086微处理器的结构和原理。

4. 实验过程在这个实验过程中,我们完成了以下几个程序:(1)计算器计算器是一个简单的程序,主要用于实现两个数之间的加、减、乘、除等基本运算。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

(2)菜单菜单是一个实用程序,主要用于展示一个简单的菜单并实现用户选择相关功能的功能。

我们使用了汇编语言中的跳转指令、输入输出指令等实现了这个程序。

5. 实验结果在我们的实验中,我们成功完成了上述两个程序。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

6. 实验总结在这个实验过程中,我们学习汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

我们通过编写计算器和菜单等简单实用程序,加深了对汇编语言的理解和认识。

我们认为这个实验对我们今后的学习和工作都有很大的帮助。

结论:通过这个实验,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

8086汇编语言实现简易计算器

8086汇编语言实现简易计算器

8086汇编语⾔实现简易计算器8086汇编语⾔实现简易计算器本周看了⼀个很有意思的知识。

C语⾔的编译器最初是怎么来的?最初应该是由汇编语⾔实现⼀个简化版C语⾔,然后使⽤简化版的C语⾔进⾏多次迭代,功能更新,从⽽出现了如今强⼤的C语⾔。

本⼈找到了⼀个古⽼的课程设计,当时学汇编时候的⼀个⼩demo分享出来。

1.概述为了更深⼊地理解计算机⼯作原理以及CPU的功能和结构,掌握汇编语⾔的使⽤。

本⽂以简易计算器程序的汇编语⾔实现为主要任务,进⾏对程序的⼀些算法和汇编语⾔语法的论述。

计算器是最简单的计算⼯具,简单计算器具有加、减、乘、除四项运算功能。

想要⽤汇编语⾔实现简单的计算器,就必须通过对数据存储,寄存器的使⽤,加减乘除相关指令以及模块的调⽤等汇编语⾔知识进⾏运⽤,以实现⼀个基本功能完善,界⾯友好,操作简便易⾏的计算器。

⽤汇编语⾔实现简单计算器还涉及到输⼊输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。

通过对各种指令的合理使⽤,设计各个功能模块。

当实现各个程序模块后,通过程序的调⽤最终实现⼀个简单的计算器。

本⽂以⽤8086汇编语⾔实现简易计算器为⽬标,对程序的算法以及结构进⾏分析和解释。

汇编语⾔的语句类型有指令语句、伪指令语句和宏指令语句。

在实现简易计算器的过程中暂不需要宏指令语句,故对此语句不进⾏介绍。

计算器的实现需要使⽤输⼊输出,DOS系统的01H,02H,09H号调⽤可以完成所需功能。

由于简易计算器对结果没有很⾼的范围要求,故对四则运算只需考虑ADD,SUB,MUL,DIV等指令。

在计算器中,输⼊的是10进制数字,⽽在汇编语⾔中读⼊字符只能⼀位⼀位的读取,故需要使⽤MUL设置⼀个循环算法,将输⼊的数字以16进制形式放⼊寄存器中,⽽输出则是使⽤MOD设置⼀个循环算法,将16进制转化为10进制后处理为ASCII码进⾏输出。

2.程序算法结构简易计算器程序的任务主要有处理输⼊数据,选择运算⽅式进⾏计算,显⽰算式结果。

汇编语言简单计算器程序课程方案报告[]

汇编语言简单计算器程序课程方案报告[]

个人资料整理仅限学习使用课程设计说明书题目: 简单计算器院系:专业班级:学号:学生姓名:指导教师:2018年12月31日安徽理工大学课程设计<论文)任务书计算机科学与工程学院硬件教研室2018年 12月 17 日安徽理工大学课程设计<论文)成绩评定表摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows 的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

本次设计的简单计算器支持简单的四则运算。

关键词:汇编语言,简单计算器,高效,硬件AbstractAssembly language is a powerful programming language features, but also all the hardware features of computer and can directly control the hardware of the language. Assembly language, as a language, corresponding to high-level language compiler, you need a "assembler" to the assembly language source file compiled into machine executable code. Advanced assembler such as MASM, TASM assembler, and so for us to write high-level language offers many similar features, such as structured, abstract and so on. In such an environment prepared by the assembler, a large part of the directive for the assembler has been similar in the high-level language. Now the compilation environment has such a high, even if all windows in assembly language to write applications that are feasible, but this is not assembly language strengths. The strength lies in assembly language to write efficient hardware and requires precise control of the machine process. This simple calculator designed to support simple arithmetic.Keywords:assembly language, simple calculator, 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参考文献141设计目的通过本次的课程设计,使自己加深对汇编语言的了解,应用《汇编语言程序设计》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。

汇编语言简单计算器程序课程设计报告

汇编语言简单计算器程序课程设计报告

汇编语言课程设计报告( 2010 -- 2011 年度第 2 学期)课题名称: 实现加减乘除四则运算的计算器专业 计算机科学与技术学生姓名 汤浩军班级 B 计算机091学号 0910704117指导教师 王 志 宏完成日期2011年6月24日目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 主模块框图及说明 (2)3 详细设计 (4)3.1 主模块及子模块说明 (4)3.2 各模块详细设计 (4)4.程序调试 (6)4.1 运行界面分析 (6)4.2 算法的分析 (6)4.3 调试过程及分析 (6)5小结 (7)5.1 设计总结 (7)参考文献 (8)源程序清单 (9)1设计目的通过本次的课程设计,加深对汇编语言的了解,应用《汇编语言程序设计教程》等所学相关知识及查阅资料,完成加减乘除计算器的设计,以达到理论与实践更好的结合,进一步提高自身的水平和对汇编语言的认识。

2概要设计2.1 系统总体分析本次设计的加减乘除四则运算的计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。

由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计的这个计算器可以一次运行,多次使用。

2.2 主模块框图及说明本程序的功能结构图如图2-1:图 2-1功能结构图程序流程图如图2-2:图2-2流程图3 详细设计3.1 主模块及子模块说明主模块:主要完成程序的主体框架结构,提供人-程序的交互。

子模块:主要完成对数据的加工,处理。

3.2 各模块详细设计主模块:首先提供一个主界面,提示用户按要求输入具体的数据和所要进行的操作,输入完毕后给出结果。

如果输入过程中发现非法输入,则立即给与提示,程序自动刷新界面,提示继续输入。

整个过程按“ESC”结束。

流程图如下图3-1:图3-1 主模块流程图子模块:完成对数据的进一步加工处理,转换格式并得出结果。

首先根据输入调用对应的“+”、“-”、“*”、“/”四大函数模块,这是本程序的核心模块,其他部分的一些小模块都是为这几大模块服务的,大致的流程图如下图3-2:Y图3-2 子模块流程图4.程序调试4.1 运行界面分析运行界面如图4-1图4-1 运行界面在NUM1这一行会提示输入第一个数据,NUM2这一行提示输入第二个数据,输入完成两个数据后程序会提示允许输入运算符,输入无误后在RESULT行显示结果。

计算机汇编语言实验报告

计算机汇编语言实验报告

计算机汇编语言实验报告一、实验目的本实验旨在通过编写计算机汇编语言程序,加强对计算机组成原理和汇编语言的理解,同时熟悉实际编写和调试过程。

二、实验内容1.用汇编语言编写一个简单的计算器程序,实现加法和减法操作。

2.编译并运行程序,测试其功能的正确性。

3.运用调试工具进行程序的调试,检查代码的运行流程。

三、实验步骤1.确定程序功能和设计思路:本次实验的目标是编写一个计算器程序,能够对两个数进行加法和减法操作。

我们可以通过定义一些操作码来表示不同的操作,再通过输入不同的操作码来执行相应的操作。

2.编写汇编语言程序:首先,需要定义一些变量和常量来存储输入的数和操作码。

然后,使用汇编语言的运算指令和控制指令来实现加法和减法操作,并将结果存储到指定的变量中。

最后,使用输出指令来显示结果。

3.编译并运行程序:将汇编语言程序编译为机器码,并通过计算机的指令集执行程序。

4.调试程序:利用调试工具,逐步执行程序,检查代码的运行流程和结果的正确性。

如有错误,进行适当的修改和调试。

5.测试功能和性能:使用不同的数和操作码进行测试,验证程序的功能和正确性。

四、实验结果经过编写、编译和调试,我们成功实现了一个简单的计算器程序。

程序能够根据输入的操作码,对两个数进行加法和减法操作,并将结果显示出来。

经过多次测试,程序的功能、正确性和性能都符合预期要求。

五、实验感想通过本次实验,我们对计算机组成原理和汇编语言有了更深入的理解。

在编写程序的过程中,我们发现汇编语言相比高级语言更加底层,需要考虑更多的细节和机器指令的使用。

同时,我们也意识到了调试的重要性,调试工具能够帮助我们分析和修正代码的错误,提高程序的质量。

六、实验总结通过本次实验,我们对计算机汇编语言的应用有了更深入的了解。

我们掌握了汇编语言程序的基本结构和语法规则,学会了使用汇编语言指令进行计算和控制。

同时,我们也提升了调试和测试的能力,加深了对计算机组成原理和汇编语言的理解。

汇编计算器程序实验报告

汇编计算器程序实验报告

《汇编语言程序设计》综合程序设计实验报告题目:计算器一、项目简介在我们生活中无时不刻不用到计算,虽说计算并不是很麻烦,但有的时候复杂的运算仍需要花费我们大量的时间去解决。

所以要有这样一个程序解决这个问题。

基于这个目的,而且在这个学期中,我们又接触到了汇编语言,运用汇编语言编写了计算器,来解决这个实际并且经常遇到的问题。

改程序主要针对加减乘除运算,可以进行相对复杂的问题,包含括号的相关运算。

该问题主要注意四则运算的优先级问题:惩处运算比加减运算优先级高,统计运算按从左到右的顺序计算,含有括号是应该先计算括号里面的内容。

二、小组成员具体分工徐其仲:调试汇编语言环境,设计汇编程序功能李秦:实现程序功能,撰写实验报告三、需求分析与设计问题:利用汇编语言编写计算器内容:从键盘输入一个四则运算表达式,按=号输出计算结果,并当结束时询问:是否继续?如果按q或Q,则退出,按其余任意键则继续。

计算器主要包括以下几个模块:(1)主程序模块主程序模块首先实现调用子程序clear清屏,初始化数据段,调用显示宏show显示界面,将寄存器ax,bx,cx,dx初始化赋初值为0,调用回车换行宏,输入字符或数字并判断调用子程序dyfq调用赋权宏fq为符号赋权,从而判断优先级,调用加减乘除子程序match对判断出的相应运算符进行运算,输出运算结果,判断是否继续,继续则返回输入,不则退出程序。

(2)赋权宏模块通过定义宏fq,定义了变元a,b进行参数传递,并使用替换运算符&使变元a与标号s对应,接着给对应的符号赋予权值,将其权值存入ch中。

(3)加减乘除运算子程序模块运算模块实现了将ax入栈保存,然后将ax,bx赋值为0,判断cl中的符号是否为乘号,若为乘号,则将number中的数字与其下一位的数字相乘,并把结果存入该位置。

类似的若不为乘号则接着判断。

(4)调用赋权宏子程序模块该模块实现了赋权宏fq为(,),*,、,+,-,=等符号分别赋权值为5,1,4,4,3,3,0.从而可以通过设定的权值来判断优先级(5)清屏子程序模块本模块先将即将用到的ax,bx,cx,dx寄存器入栈保存,通过ah=06h屏幕上卷功能,用bh=07h将屏幕设置为黑底白字,给dh,dl赋值将其清屏位置设定在30行80列范围,从而实现了清屏功能,然后再讲ax,bx,cx,dx寄存器出栈(6)回车换行宏模块通过2号功能的输出功能,将0dh赋予dl输出,再调用2号功能,将0ah 赋予dl输出,从而实现回车换行功能。

51单片机简易计算器设计报告(一)

51单片机简易计算器设计报告(一)

51单片机简易计算器设计报告(一)背景介绍在数字化时代,计算器作为一种简单易用的工具,越来越得到人们的关注和热爱。

而基于51单片机的简易计算器,不仅可以成为一种学习电子技术的手段,还具有满足简单计算需求的实用性。

设计思路本计算器采用键盘输入和数码管输出的电路设计,为用户提供加、减、乘、除、小数点、退位以及等于等功能。

1.键盘输入采用矩阵键盘的方式,将所有按键按行列排列,并利用51单片机中断方式来读取键值。

2.计算处理通过编写相应的程序代码,计算出用户输入的两个数值及操作符的结果,并将结果存储在数据缓存器中,最后将其输出至数码管。

3.数码管显示根据计算结果的数据类型,将其经过相应的转换处理后,通过数码管将结果输出至用户。

设计技术1.软件编写软件编写方面,采用汇编语言进行编写,代码总长度为2.2KB 左右。

其中,以中断方式读取键值、实现数值存储与判断、计算处理、数码管的结果输出等作为关键点进行编写。

2.硬件搭建硬件搭建方面,需要按照电路图进行搭建,并将51单片机与相关周边电路进行连接。

根据设计思路,将键盘、数码管、电源、指示灯等设备按照需求进行连接。

可改进之处虽然 51单片机的简易计算器的搭建能够满足基本计算需求,但其在以下几方面还有可改进之处:•添加计算科学函数,如三角函数、对数函数等。

•改进操作方式,使其更加符合人体工程学原理。

•添加储存器,使用户能够将计算结果进行存储和调用。

总结通过本次对基于51单片机的简易计算器的设计与实现,我们深入了解了电子技术的基本概念和硬件搭建原理,并了解到了简单嵌入式系统的工作原理。

虽然该计算器在功能和效率方面还有待改进,但对于初学者来说,其对于电子技术的学习和实验还是很有价值和意义的。

•编写的汇编代码过于繁琐,可考虑使用高级语言编写以提高效率和易读性。

•在电路搭建时需注意布线的合理性,尽量避免出现干扰和信号损失的问题。

综上所述,基于51单片机的简易计算器的设计和实现虽存在一些不足,但还是很有价值的。

汇编语言课程设计四则运算计算器

汇编语言课程设计四则运算计算器

汇编语言课程设计报告( 2010 -- 2011 年度第2 学期)课题名称:实现加减乘除四则运算的计算器专业计算机科学与技术学生姓名郑诗霖班级B计算机092学号**********指导教师王志宏完成日期2011年6月24日目录1 设计目的 (1)2 设计内容 (1)3 实现方法 (1)3.1 系统目标 (1)3.2程序流程图及说明 (2)3.2 主体功能 (4)4程序调试 (4)4.1 运行界面分析 (4)4.2 调试过程及分析 (4)5 小结 (6)参考文献 (7)附录 (8)附录1 源程序清单 (8)实现加减乘除四则运算的计算器1 设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。

2 设计内容课题名称:实现加减乘除四则运算的计算器主要功能:能实现加减乘除的计算;该程序接受的是16进制数;执行时,需在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:C:\tasm>js 3+253 实现方法3.1 系统目标本次汇编语言课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

比如,十进制数的加减乘除四则运算。

我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。

此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。

第一步,我要解决的是输入时是用INT 21H的10号功能调用还是用INT 21H 的1号功能调用来进行输入。

汇编课程设计计算器

汇编课程设计计算器

汇编课程设计计算器一、课程目标知识目标:1. 学生能理解汇编语言的基本概念,掌握计算器程序的基本结构。

2. 学生能运用汇编语言实现加、减、乘、除等基本运算。

3. 学生了解计算机内部运算的原理,理解寄存器、内存等硬件资源在程序执行过程中的作用。

技能目标:1. 学生能运用汇编语言编写简单的计算器程序,具备基本的编程能力。

2. 学生能通过调试和优化程序,提高计算器程序的执行效率。

3. 学生能运用所学知识解决实际计算问题,具备一定的实际问题分析解决能力。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,增强学习动力。

2. 学生养成严谨、细致的学习态度,提高团队协作能力。

3. 学生认识到编程在日常生活和未来发展中的重要性,培养创新精神和实践能力。

分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能自主阅读汇编语言教材,理解计算器程序的基本结构。

2. 学生能独立编写简单的计算器程序,并通过调试和优化提高程序性能。

3. 学生能以小组形式合作完成复杂计算器程序的设计与实现,提高团队协作能力。

4. 学生在课程学习过程中,主动探索新知识,培养解决问题的能力和创新思维。

二、教学内容本课程教学内容主要包括以下几部分:1. 汇编语言基础知识:- 认识汇编语言,了解其发展历程和特点。

- 学习汇编语言的语法和基本指令。

- 了解计算机内部结构,理解寄存器、内存等硬件资源的作用。

2. 计算器程序设计:- 分析计算器程序的需求,明确功能模块。

- 学习汇编语言编写程序的基本方法,设计计算器程序框架。

- 掌握加、减、乘、除等基本运算的汇编实现。

3. 调试与优化:- 学习使用汇编语言调试工具,掌握调试技巧。

- 分析程序性能,提出优化方案。

- 实践优化过程,提高计算器程序执行效率。

4. 教学案例与实战:- 选取典型计算器案例,进行讲解和分析。

- 学生分组合作,完成复杂计算器程序的设计与实现。

- 组织课堂讨论,分享编程心得和经验。

简易计算器的汇编语言程序设计报告

简易计算器的汇编语言程序设计报告

陕西理工学院--VF课程设计报告设计内容:计算器程序设计学院信息:管理学院班级:会计1204班制作人员:史凡史明坤学号:1220034149指导教师:周作涛目录一、程序功能设计界面............... 错误!未定义书签。

二、程序流程图及其说明.............. 错误!未定义书签。

1 程序流程图 (4)2 流程图说明..................... 错误!未定义书签。

三、程序调试 (5)1.初始界面 (5)2.加法运算实现界面............... 错误!未定义书签。

3.除法运算实现................... 错误!未定义书签。

4.减法运算....................... 错误!未定义书签。

5. 乘法运算实现.................. 错误!未定义书签。

6.清屏后的界面................... 错误!未定义书签。

四、心得体会 (6)五、参考文献 (9)六、附录(代码) ...................... 错误!未定义书签。

一、程序基本概况1 程序界面该课程设计的任务是做一个简易计算器,可以实现加减乘除四则运算。

我们要解决的问题有:以什么方式输入数字、判断是进行什么运算、运算过程中的进位和借位问题以及如何实现清屏等问题。

首先我们要解决的是输入问题,这里我们用vf的自定义的按钮来进行个人输入;然后我们要进行的是判断是进行何种运算,到底是“+、-、*、/”中的哪一种。

当点击ON/c时,则清屏。

点击退格时则消减一位数字。

具体界面如下图:2程序功能介绍本次设计的为简易计算器程序,可以进行简单的四则运算,并对计算的结果及过程能及时并准确的显示。

二、初步设计构想本次课程设计以设计简易计算器为主,功能较为简单,内容相对较少,但其界面必须清晰明了,不能过于繁琐,应由一个text文本框以及相关按钮组成,按钮方面应人性化对按钮进行全面分析设计,使使用者能更好更简洁的使用相关操作。

汇编语言简单计算器程序毕业课程设计报告[1]

汇编语言简单计算器程序毕业课程设计报告[1]

(此文档为word格式,下载后您可任意编辑修改!) 课程设计说明书题目: 简单计算器院系:专业班级:学号:学生姓名:指导教师:2010年 12月 31日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室2010年 12月 17 日安徽理工大学课程设计(论文)成绩评定表摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

本次设计的简单计算器支持简单的四则运算。

关键词:汇编语言,简单计算器,高效,硬件AbstractAssembly language is a powerful programming language features, but also all the directly control the . In such an environment prepared by the assembler, a large part of the directive for the assembler similar in the environment if all windows in assembly language to write applications that are feasible, but this is not assembly language strengths. The strength lies in assembly language to write efficient hardware and requires precise control of the machine process. This simple calculator designed to support simple arithmetic.Keywords:assembly language, simple calculator, efficient, hardware目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 主模块框图及说明 (2)3 详细设计 (4)3.1 主模块及子模块说明 (4)3.2 各模块详细设计 (4)4.程序调试 (12)4.1 运行界面分析 (12)4.2 算法的分析 (12)4.3 调试过程及分析 (12)5心得体会 (13)5.1 设计体会 (13)5.2 系统改进 (13)参考文献 (14)1设计目的通过本次的课程设计,使自己加深对汇编语言的了解,应用《汇编语言程序设计》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。

简易计算器完整课程设计

简易计算器完整课程设计

一、设计要求1.设计4*4的键盘,其中10个数字键0~9,第十三个键为”+“,第十五个键为”=“2 ,实现1位数的简单加运算二、硬件系统设计1、LED接口电路简易计算器需要2位8段码LED显示电路。

用LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作为位控制端口。

然后接至各数码显示器的共阴极端。

2、键盘接口电路简易计算器需要4*4的行列式键盘。

8255A的B口作为输出端,C口作为输出端。

采用的是方式0。

3、计算器逻辑电路图将LED接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图逻辑电路结构如下:Cpu 8255 键盘三、软件设计1、LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED 显示器,器排列形状如下图所示:为了显示数字或符号,要为LED显示器提供代码,即字形代码。

七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。

简易计算器用到的数字0~9的共阴极字形代码如下表:0~9七段数码管共阴级字形代码2位LED显示的程序框图如下:2、读键输入程序设计为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。

为了得到被按键的键码,现使用行扫描法识别按键。

其程序框图如下:3、主程序设计(1)数值送显示缓冲程序设计简易计算器所显示的数值最大位为一位。

(2)运算主程序设计首先初始化参数,送LED低位显示“0”,高位不显示。

然后扫描键盘看是否有键输入,若有,读取键码。

判断键码是数字键、还是功能键(“+”“=”),是数值键则送LED显示并保存数值,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。

运算主程序框图如下所示:4、简易计算器源程序con8255 equ 06c6h ;8255的控制端口的物理号c8255 equ 06c4h ;C端口的端口号b8255 equ 06c2h ; B端口的端口号a8255 equ 06c0h ; A端口的端口号data segmentlist DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;对应数字的显示码keycode DB 0EEH, 0DEH, 0BEH, 7EHDB 0EDH, 0DDH, 0BDH, 7DHDB 0EBH, 0DBH, 0BBH, 7BHDB 0E7H, 0D7H, 0B7H, 77H;对应键的特征值(键盘识别码)num1 dw 0 ;偏移量x DB 0FFH ;存放参与运算的第一个数y DB 0FFH ;存放运算符z DB 0FFH ;存放参与运算的第二个数re DB 0FFH ;存放运算结果data endssstack segment stackssda db 100 dup(?)sstack endscode segmentassume cs:code, ds:datastart: mov ax, datamov ds, axcall init8255 ;初始化8255 ispk:call clear ;B端口清零call ispkey ;判断是否有建按下and al, 0fhcmp al, 0fhje ispkcall findkeyboardcall dispnumcmp num1, 14je js1call cunshujmp disnum1js1: call jisuanmov x, 0ffhmov y, 0ffhmov z, 0ffhmov nUM1, 0mov re,0ffhcall dispnummov cx,1000www: loop wwwjmp ispkdisnum1:is: jmp ispkmov ah, 4chint 21hinit8255 proc near ;初始化8255 mov al, bmov dx, 06c6hout dx, alretinit8255 endpclear proc nearmov dx, b8255out dx, alclear endpispkey proc near ;判断是否有建按下mov al, 00hmov dx, a8255out dx, almov dx, c8255in al, dxretispkey endpfindkeyboard proc near ;找具体键盘按键cl1: mov al, bmov ah, alshl ah, 4mov dx, a8255 ;al传递给a端口out dx, almov dx, c8255 ;c端口读入数据赋值给alin al, dxcmp al, 0fhje cl2jmp exitkcl2: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhje cl3jmp exitkcl3: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhje cl4jmp exitkcl4: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhexitk:add ah, al ;得到键盘识别码retfindkeyboard endpdispnum proc near ;显示数字子程序cmp ah,0b7hjnz ll2mov cl,remov ch,0mov si,offset listadd si,cxmov al,[si]mov dx,06c2hout dx,almov num1,14jmp ll3ll2: mov cx, 16mov si, offset keycodemov di, offset listmov num1, 0numl1: cmp [si], ahje exitinc siadd num1, 1loop numl1exit: add di, num1 ;显示相应数字mov al, [di]mov dx, 06c2hout dx, alll3: retdispnum endpCUNSHU PROC NEAR ;存放数据PUSH AXCMP X, 0FFHJNE Y1MOV AL, BYTE PTR NUM1MOV X, ALJMP EX1Y1: CMP Y, 0FFHJNE Z1MOV AL, BYTE PTR NUM1MOV Y, ALJMP EX1Z1:MOV AL, BYTE PTR NUM1MOV Z, ALEX1: POP AXRETCUNSHU ENDPJISUAN PROC NEAR ;计算子程序PUSH SILEA SI, KEYCODEMOV AX, 0ADD AL, XADD AL, ZADD SI, AXMOV AH, [SI]MOV RE, ALPOP SIRETJISUAN ENDPcode endsend start四、心得体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

汇编计算器程序实验报告

汇编计算器程序实验报告

汇编计算器程序实验报告《汇编语⾔程序设计》综合程序设计实验报告题⽬:计算器⼀、项⽬简介在我们⽣活中⽆时不刻不⽤到计算,虽说计算并不是很⿇烦,但有的时候复杂的运算仍需要花费我们⼤量的时间去解决。

所以要有这样⼀个程序解决这个问题。

基于这个⽬的,⽽且在这个学期中,我们⼜接触到了汇编语⾔,运⽤汇编语⾔编写了计算器,来解决这个实际并且经常遇到的问题。

改程序主要针对加减乘除运算,可以进⾏相对复杂的问题,包含括号的相关运算。

该问题主要注意四则运算的优先级问题:惩处运算⽐加减运算优先级⾼,统计运算按从左到右的顺序计算,含有括号是应该先计算括号⾥⾯的内容。

⼆、⼩组成员具体分⼯徐其仲:调试汇编语⾔环境,设计汇编程序功能李秦:实现程序功能,撰写实验报告三、需求分析与设计问题:利⽤汇编语⾔编写计算器内容:从键盘输⼊⼀个四则运算表达式,按=号输出计算结果,并当结束时询问:是否继续?如果按q或Q,则退出,按其余任意键则继续。

计算器主要包括以下⼏个模块:(1)主程序模块主程序模块⾸先实现调⽤⼦程序clear清屏,初始化数据段,调⽤显⽰宏show显⽰界⾯,将寄存器ax,bx,cx,dx初始化赋初值为0,调⽤回车换⾏宏,输⼊字符或数字并判断调⽤⼦程序dyfq调⽤赋权宏fq为符号赋权,从⽽判断优先级,调⽤加减乘除⼦程序match对判断出的相应运算符进⾏运算,输出运算结果,判断是否继续,继续则返回输⼊,不则退出程序。

(2)赋权宏模块通过定义宏fq,定义了变元a,b进⾏参数传递,并使⽤替换运算符&使变元a与标号s对应,接着给对应的符号赋予权值,将其权值存⼊ch中。

(3)加减乘除运算⼦程序模块运算模块实现了将ax⼊栈保存,然后将ax,bx赋值为0,判断cl中的符号是否为乘号,若为乘号,则将number中的数字与其下⼀位的数字相乘,并把结果存⼊该位置。

类似的若不为乘号则接着判断。

(4)调⽤赋权宏⼦程序模块该模块实现了赋权宏fq为(,),*,、,+,-,=等符号分别赋权值为5,1,4,4,3,3,0.从⽽可以通过设定的权值来判断优先级(5)清屏⼦程序模块本模块先将即将⽤到的ax,bx,cx,dx寄存器⼊栈保存,通过ah=06h屏幕上卷功能,⽤bh=07h将屏幕设置为⿊底⽩字,给dh,dl赋值将其清屏位置设定在30⾏80列范围,从⽽实现了清屏功能,然后再讲ax,bx,cx,dx寄存器出栈(6)回车换⾏宏模块通过2号功能的输出功能,将0dh赋予dl输出,再调⽤2号功能,将0ah 赋予dl输出,从⽽实现回车换⾏功能。

汇编语言课程设计答辩简易计算器PPT学习教案

汇编语言课程设计答辩简易计算器PPT学习教案
第1页/共14页
实现功能
可以实现加减乘除四则运算以及清屏 、退出 功能
输入、输出问题
用INT 21H的一号功能调用来进行输入,
输出则用单字符输出。
完善功能
当键入回车键后,可以换行重新输入;当键入C 或c键时,清除整个屏幕上的输入和输出的字符 并可以重新输入并运算;当按下Q或q键退出程。
目录
第2页/共14页
判断输入的是不是回车键,若是就回车换行输入,不是则继 续输入;
判断输入的是否为数字以及+,-,=这些字符,若不是会报 错,是则将其存储到定义的数据区里面,再判断输入的是进行 什么运算符,进行相应的运算,输出结果。 继续上面的步骤
目录
第4页/共14页
调试过程
1、初始界面 2、加法运算实现 3、减法运算实现 4、乘法运算实现 5、除法运算实现 6、清屏
除法运算实现
运行界面如图:
第10页/共14页
当输入C或c时则清屏,程序运行后清 除整个 窗口内 输入和 输出的 字符并 可以继 续输入 并计算 。如图 :
清屏
第11页/共14页
实训总结
经调试,基本上任务要求设计的所有功能都实现,调 试出的计算结果均正确。
一周的课程设计结束了,给我的总体感觉就是忙 碌但充实,而且真正学到了东西。
从构思到设计流程图到编写源程序都是我一个人 独立完成的,虽然这个过程比较痛苦,但是我真正的 去体验了,当我编写的程序一遍一遍地报错,出的结 果一次次和正确结果有出入的时候我真的好想放弃, 但是我选择了坚持。
在胡安明老师的指导下,我一一改正了程序存在 的错误,最终使得该程序得以正确实现加减乘除功能 。
程序流程图
目录
第3页/共14页
程序使用说明
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书题目: 简单计算器院系:专业班级:学号:学生姓名:指导教师:2010年12月31日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室2010年 12月 17 日安徽理工大学课程设计(论文)成绩评定表摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

本次设计的简单计算器支持简单的四则运算。

关键词:汇编语言,简单计算器,高效,硬件AbstractAssembly language is a powerful programming language features, but also all the hardware features of computer and can directly control the hardware of the language. Assembly language, as a language, corresponding to high-level language compiler, you need a "assembler" to the assembly language source file compiled into machine executable code. Advanced assembler such as MASM, TASM assembler, and so for us to write high-level language offers many similar features, such as structured, abstract and so on. In such an environment prepared by the assembler, a large part of the directive for the assembler has been similar in the high-level language. Now the compilation environment has such a high, even if all windows in assembly language to write applications that are feasible, but this is not assembly language strengths. The strength lies in assembly language to write efficient hardware and requires precise control of the machine process. This simple calculator designed to support simple arithmetic.Keywords:assembly language, simple calculator, efficient, hardware目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 主模块框图及说明 (2)3 详细设计 (4)3.1 主模块及子模块说明 (4)3.2 各模块详细设计 (4)4.程序调试 (12)4.1 运行界面分析 (12)4.2 算法的分析 (12)4.3 调试过程及分析 (12)5心得体会 (13)5.1 设计体会 (13)5.2 系统改进 (13)参考文献 (14)1设计目的通过本次的课程设计,使自己加深对汇编语言的了解,应用《汇编语言程序设计》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。

通过本次课程设计的训练,可以使我在基本思路和基本方法上对基于8086/8088和基于ARM核的汇编语言程序设计有一个比较感性的认识,并具备一定程度的设计能力,从而能够熟练掌握编写汇编语言源程序的基本方法和基本构架,学会编写顺序结构、分支结构、循环结构和子程序的汇编程序,掌握程序中数据的产生与输入输出的方法以及一些关于汇编语言更深层次方面有初步的认识。

2.1 系统总体分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。

由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。

本程序使用了函数和宏混用的方式实现了代码的较好的可读性,使程序看起来结构严谨。

2.2 主模块框图及说明本程序的功能结构图如图2-1:图 2-1功能结构图程序流程图如图2-2:图2-2流程图3.1 主模块及子模块说明主模块:主要完成程序的主体框架结构,提供人-程序的交互。

子模块:主要完成对数据的加工,处理。

3.2 各模块详细设计主模块:首先提供一个主界面,提示用户按要求输入具体的数据和所要进行的操作,输入完毕后给出结果。

如果输入过程中发现非法输入,则立即给与提示,程序自动刷新界面,提示继续输入。

整个过程按“ESC”结束。

流程图如下图3-1:NY图3-1 主模块流程图代码如下:CURS MACRO A,BMOV AH,2 ;置光标位置MOV BH,0 ;页号为0MOV DH,A ;设置光标的坐标为(A.B)MOV DL,BINT 10H ;BIOS调用ENDM;DISPMSG MACRO MESSAGELEA DX,MESSAGE ;传递MESSAGE的偏移地址MOV AH,9 ;显示字符串INT 21H ;DOS调用ENDM;CLEAR MACRO COLOR ;清屏MOV AH,6 ;屏幕初始化MOV AL,0 ;页号MOV CH,0 ;设置左上角的坐标为(0,0)MOV CL,0MOV DL,100 ;设置右上角的坐标为(100,100)MOV DH,100MOV BH,COLOR ;卷入行属性INT 10H ;BIOS调用ENDM.MODEL SMALL.STACK.DATA ;数据段定义MSG0 DB '* * * * * * * * * * * * * * * * * * * *',0DH,0AH ;,0dh,0ah,0dh,0ah DB ' * *',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 ' * * * * * * * * * * * * * * * * * * * *','$'MSG1 DB 'choose +,-,*,/','$'MSG2 DB 'you choose wrong','$',0AH,0DHMSG3 DB 'Press ESC to Exit!',0DH,0AH,'$'MSG4 DB 'Press any key to continue!',0DH,0AH,'$'MSG5 DB '-','$'MSG6 DB '.','$'MSG7 DB 'error input!','$'MSG8 DB 'data2 is wrong!','$'NUM1 DW ?NUM2 DW ?子模块:完成对数据的进一步加工处理,转换格式并得出结果。

首先根据输入调用对应的“+”、“-”、“*”、“/”四大函数模块,这是本程序的核心模块,其他部分的一些小模块都是为这几大模块服务的,大致的流程图如下图3-2:NY图3-2 子模块流程图代码如下:BEGIN PROC NEARBACK: CLEAR 1EHCURS 2,20 ;设置光标为(2.20)DISPMSG MSG0 ;显示用户界面CURS 8,41 ;设置光标为(8,41),第一行MOV BX,0MOV CX,2NEWCHAR1:MOV AH,1 ;键盘输入并回显INT 21H ;DOS调用CMP AL,30H ;检查输入的字符是不是数字JAE J1 ;如果不是,则转移至J1JMP D2 ;是,转移到D2执行J1: CMP AL,39H ; 与9的ASCII比较JBE J2 ;如果输入的字符是0-9,则转移至J2JMP D2 ;如果不是数字,则转移至D2J2: SUB AL,30HCBW ;AL的内容符号扩展到AHXCHG AX,BXMOV DI,10MUL DIXCHG AX,BXADD BX,AXLOOP NEWCHAR1MOV NUM1,BXCURS 11,41 ;设置光标位为(11,40),第二行MOV BX,0MOV CX,2NEWCHAR2:MOV AH,1 ;键盘输入并回显INT 21H ;DOS调用CMP AL,30H ;与0的ASCII码比较JAE J3 ;如果输入数字大于等于0则跳转至J3JMP D2J3: CMP AL,39H ;与9比较JBE J4 ;如果小于或等于9则跳转JMP D2 ;如果输入不是数字则跳转J4: SUB AL,30H ;如果输入不是0-9,则转化成相应的字符CBW ;将AL符号扩展到AHXCHG AX,BXMOV DI,10MUL DIXCHG AX,BXADD BX,AXLOOP NEWCHAR2MOV NUM2,BXMOV AX,NUM1MOV BX,NUM2PUSH AXPUSH BXCURS 15,33 ;设置光标的位置为(15.33),第三行DISPMSG MSG1 ;显示提示信息MOV AH,1 ;接受键盘输入并回显INT 21H ;DOS调用CMP AL,'+'JE ADDI ;如果运算符为+,则计算两数之和CMP AL,'-'JE SUBT ;如果运算符为-,则计算两数之差CMP AL,'*'JE MULT ;如果运算符为*,则计算两数之积CMP AL,'/'JE DIVI ;如果运算符为/,则计算两数之商CURS 16,25 ;设置光标为(16,25)DISPMSG MSG2 ;在屏幕上输出提示信息JMP D1; ----;ADD THE TWO DATASADDI: POP BXPOP AXADD AX,BX ;计算两数字之和PUSH AXCURS 14,41 ;设置光标位置为(14,41)POP AXCALL CHANGE ;将结果转换为十进制数JMP D1SUBT: POP BXPOP AXCMP AX,BX ;比较两数大小JAE D0 ;如果AX>=BX则跳转XCHG AX,BXPUSH AXPUSH BXCURS 14,40 ;设置光标位置为(14,40)DISPMSG MSG5 ;在屏幕上显示负号POP BXPOP AXD0: SUB AX,BX ;计算两数之差PUSH AXCURS 14,41 ;设置光标位置为(14,41)POP AXCALL CHANGE ;将结果转换为十进制数JMP D1MULT: POP BXPOP AXMUL BX ;计算两数之积PUSH AXCURS 14,41 ;设置光标位置为(14,41)POP AXCALL CHANGE ;将结果转换为十进制数JMP D1DIVI: POP BXPOP AXCMP BX,0 ;判断除数是否为0JE ERROR ;如果是0则跳转CWDDIV BX ;计算两数之商PUSH DXPUSH AXCURS 14,41 ;设置光标位置为(14,41)POP AXCALL CHANGE ;将十六进制数转换为十进制数POP DXCMP DX,0JNE LOP ;如果DX不等于0则跳转JMP D1LOP: MOV CX,4 ;设置精确度为小数点后4位PUSH DXDISPMSG MSG6 ;输出小数点POP DXCON: PUSH BXMOV AX,DXMOV BX,10MUL BXPOP BXCWD ;将AX的内容符号扩展到双字DIV BX ;计算小数点后每一位的数字PUSH DXPUSH CXCALL CHANGE ;将十六进制数转化为十进制数POP CXPOP DXCMP DX,0 ;判断是否已经计算到小数点后第六位JE D1 ;如果是,则跳转LOOP CON ;如果不是,就继续计算ERROR: CURS 15,33 ;设置光标位置为(15,33)DISPMSG MSG8 ;提示出错D1: RETD2: PUSH AXPUSH BXCURS 15,33 ;设置光标位置为(15,33)DISPMSG MSG7 ;提示输入出错POP BXPOP AXRETBEGIN ENDP4.程序调试4.1 运行界面分析运行界面如图4-1图4-1 运行界面在NUM1这一行会提示输入第一个数据,NUM2这一行提示输入第二个数据,输入完成两个数据后程序会提示允许输入运算符,输入无误后在RESULT行显示结果。

相关文档
最新文档