微机原理课程设计-四则运算
- 格式:doc
- 大小:78.00 KB
- 文档页数:10
目录1 设计目的 (1)2 概要设计 (1)2.1 系统总体分析 (1)2.2 主模块框图及说明 (2)3 详细设计 (3)3.1 主模块及子模块说明 (3)3.2 各模块详细设计 (3)3.2.1 判定运算符模块设计 (3)3.2.2取运算数模块 (3)3.2.3计算模块 (4)3.2.4结果处理模块 (5)3.2.5输出模块 (5)3.2.6错误处理模块 (6)4 程序调试 (7)4.1 运行界面分析 (7)4.2 调试过程及分析 (7)5 心得体会 (8)5.1 设计体会 (8)5.2 系统改进 (8)参考文献 (10)附录 (11)实现加减乘除四则运算的计算器1 设计目的汇编语言是继机器语言后出现的计算机程序设计语言,是计算机所能提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特征并能够直接控制硬件的惟一语言。
因而了解之一语言的特性,并熟练掌握这一语言并应用于开发中便是计算机专业学生所必需掌握的技能之一。
本课程设计通过加减乘除四则运算计算器的设计,增强对于汇编语言寄存器、指令、伪指令、中断等的理解。
可通过编写的汇编程序完成基本的加减乘除四则运算。
主要功能:能实现加减乘除的计算;该程序接受的是16进制数;执行时,需在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:C:\tasm>js 3+252 概要设计2.1 系统总体分析四则运算计算器应当实现对用户输入表达式的处理。
根据用户输入的表达式,完成加减乘除四则运算。
程序自动判定表达式输入,并完成对于输入的16进制数的转换,同时计算结果并以10进制数输出。
对于异常情况程序应当进行处理,保证程序的正确运行。
设计一个计算器,在DOS界面下输入<程序名> <表达式>可直接输出运算结果。
例如在DOS界面中输入JS 3+6,可直接输出9。
程序接受16进制数输入,以十进制数输出运算结果。
对于输出错误情况,程序自动给出错误提示,若输入的格式有误,程序给出“JS <Expression> [10]”(即输入样例)提示,若输入的表达式有误,程序给出“Error in expression !”(即表达式错误)提示。
设计模式课程设计一、四则运算学习软件请使用面向对象来设计一个完成数学运算的计算器,计算器要实现四则运算、三角运算、倒数、乘方/开方这些基本运算,给出设计界面,由界面按钮来录入表达式的内容,能够保留计算表达式,根据计算优先级完成表达式的计算,并且使用抽象语法树显示计算的过程,可单步执行、一次执行、多次回退,可以提供给学生学习数学运算知识。
1、设计场景说明:数学表达式运算。
对常数或变量进行加减乘除乘方、开方、三角函数等运算,如何使用面向对象的方式来进行设计呢?可以说明一下语法规则如下表达式格式:常量|变量|加|减|乘|除…加:表达式+ 表达式减:表达式- 表达式乘:表达式* 表达式变量:任何标志符常量:数字2、设计界面如下:(可以根据你的需要改进界面设计,可以将输入框变为一个textArea,以存放更多的字符串,类似编辑框)表示余弦,3、计算器数学运算表达式分析(首先使用解释器模式建立语法规则)❖要求分析处理表达式中的单层括号,不包括嵌套括号(请考虑嵌套括号);❖要求处理变量,最多三个变量(名称限定为A、B、C)❖按照优先级及替换原则进行表达式分析(递归下降分析,简单说明如下:)3.1首先分析和替换括号,使用括号作为分隔符分解表达式,所以每个元素由”(“或者”)”以及括号中的表达式和括号外的表达式组成,计算括号内的表达式,用结果替换该表达式;形成新的表达式。
3.2对新的表达式,分析和替换*/符号,使用+-符号作为分隔符分解表达式,所以每个元素由+,-,以及乘除法表达式组成,计算乘除法表达式(建立语法树),用结果替换该表达式(或递归调用);形成新的表达式。
3.3对新的表达式,使用+-符号作为分隔符分解表达式,所以每个元素由+,-,以及数字组成,建立语法树,最后得到表达式结果。
3.4对其他运算,类似进行优先级替换,同样可以得到计算结果。
4、对数学表达式可以增加各种新的操作,如对不同节点进行格式化(不同颜色)显示、算法优先级显示、类型检查、赋值检查、以及语法检查、解释执行,考虑使用访问者模式。
淮北师范大学《数据结构设计实验报告》题目——四则运算练习软件班级:09非师设计者:曹严严指导老师:张震时间: 2011/04/13---2011/04/14目录1程序设计的内容和相关的要求----------------------------------- 2程序总的功能说明---------------------------------------------- 3程序的模块的说明---------------------------------------------- 4程序设计的流程图---------------------------------------------- 5程序的操作说明及运行结果------------------------------------- 6源程序的清单-------------------------------------------------- 7心得体会------------------------------------------------------1程序设计的内容和相关的要求课程设计的目的:数据结构课程设计是计算机学院重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。
● 进一步巩固和复习数据结构的基础知识。
● 培养学生结构化程序、模块化程序设计的方法和能力。
● 提高学生调试程序的技巧和软件设计的能力。
● 提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。
● 了解软件的编制过程。
实现的任务:编写一个100以内的四则运算练习软件。
设计内容:1. 随机产生两个<100的整数(运算结果也要在100内),可以选择要练习的运算+,-*,/,调用+,-,*,/四个运算函数实现运算。
2. +,-,*,/混合运算(用栈的原理实现)设计要求:1. 不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。
四则运算教案(通用13篇)四则运算篇1教学内容教科书第1---6的例2以及例3(部分)教学目标1、通过探究、交流等学习活动,使学生理解“先乘除,后加减”,引导学生发现并总结出同级运算和两级混合运算的运算顺序,并正确进行运算。
2、培养学生列综合算式解决实际问题的能力,以及发现问题、分析、解决问题的能力。
3、引导学生感受数学与生活的紧密联系。
教学重点引导学生发现并总结概括出没有括号的混合运算的运算顺序。
教学难点帮助学生理解“先乘除,后加减”的原因。
教学过程一、创设情境,导入新课老师:冬天,同学们最喜欢什么运动?学生:滑雪、堆雪人、打雪仗......这里是新开业的滑雪场。
(出示大屏幕)这节课我们就来了解有关滑雪场的情况。
二、结合情境,探究新知(一)发现、总结同级运算的运算顺序。
1、出示信息:滑雪场开业第一天上午有230人,中午有70人离去,又有150人到来。
老师:根据信息你能提出什么数学问题?学生:下午有多少人?(学生列式解答并指名板演)230-70=160人 160+150=310人 230-70+150=310人汇报交流:请列分步算式和综合算式的学生分别说说解答思路。
引导学生分析比较:两者思路是相同的,只是第三位同学列出了一道加减混合的综合算式,这样写比较简单。
老师:由于数目越来越大,直接写出最后得数容易出错,如果我们把第一步的计算结果记录下来就不容易算错了。
(教学脱式书写格式)2、出示信息:开业前三天共接待900人,照这样计算,5天预计接待多少人?老师:同学们能根据信息列出综合算式并脱式计算吗?(指名学生板演)90¸3´5=30´5=150(人)老师:指名学生给大家说说应先算什么、后算什么?为什么?学生:我先用900¸3,再用它们的商¸5,因为必须先求出平均每天接待的人数才能算出5天的人数。
老师:也就是说,这道乘除混合的算式你是按照从左到右的顺序的。
Vc++课程设计报告题目名称:四则运算班级:测控技术与仪器姓名:周赛学号:914101170150一、程序功能简介该程序用字符串形式接受一个带括号的四则运算表达式,然后按照四则运算优先级的算法先括号,后乘方、乘除、加减这样的顺序将这个算式解出。
该程序的设计比较巧妙,是在主程序中反复查找最后一对括号,将其中的结果计算出来,去掉括号,这样的过程持续下去,最后导致所有的括号都去除,解出算式。
二、课程设计要求(1)用类的要求改写程序,将数据和函数封装到类中。
(2)修改主程序,使程序可以反复运算,直到选择退出为止。
(3)扩充程序功能,使程序适合浮点数运算。
(4)增加程序的判断功能,当有非法的输入时(如字母等),给出提示信息并退出运算,当输入带有空格时,能将空格滤除。
三、程序设计思想(1)类的封装实际上该字符串类基本类似于c++中的string类,比string类多定义了浮点数与字符串的相互转换的函数,输入输出友元函数,可以从string类派生出CStr类,这样,类的定义就更加简单,且可以利用很多现成的成员函数。
(2)主程序结构算法的设置定义char类型的变量用来存储字符串,定义CStr类用于对字符串操作函数的引用。
先对输入字符串用Judge函数进行输入正确性的判断及取出空格内容;然后用charinstr函数在字符串中反复查找最后一对括号;用midstr函数提取出来,用calculate函数进行计算;并用left函数与right函数及addstrings函数将所找到这对括号的左边、右边及运算结果以字符串的形式合并成一个新的字符串;重复上述操作直至字符串中不再有括号;最后用calculate函数进行最后的计算返回计算结果。
紧接着进行是否退出计算的输入判断,完成程序反复运算的功能。
四、详细设计①判断功能:用类中定义的judge函数实现,返回值为1即合法,为0即不合法。
去除空格:定义p、s两个指针指向字符串,r指针指向p指针实现p、s指针在字符串中的遍历,用p指针找到第一处空格处,再用s指针找到p指向位置以后最近一个不是空格处,赋值语句*p=*s,继续向下遍历字符串直至结束。
课程设计实验报告:1.4长整数四则运算题目:长整数四则运算一、实验内容【问题描述】设计一个实现任意长的整数进行加法运算的演示程序【基本要求】利用双向循环链表实现长整数的存储,每个结点含一个整形变量。
任何整形变量的范围是-(2八15-1)〜(2八15-1)。
输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
【实现基本功能】⑴是想长整数的四则运算;(ii)实现长整数的乘方和阶乘运算;(iii)整形量范围是-(2沏-1)~(2八n-1),其中n是由程序读入的参量。
输入数据的分组方法另行规定;【实现加强版本的功能】⑴四则运算在原来版本的基础上支持小数运算,除法还可以通过输入整数后加小数点与相应要求取的精确位数求出精确值,如:求取3666除以7的后三位精确值,可以在输入时将除数输入为3666.000或3666.0000,就能得出相应的精确位数,当然求取后,没有余数的输出;(ii)乘方的功能也进行了强化,支持小数操作;(iii)添加了多个出错处理(即输入重操作)对相应数据输入与输出进行提示;【加强版的实现原理】⑴加减法运算加强:在原来版本的基础上依照基本的加减法操作将数据用小数点进行分隔,记录下连个输入数的小数位长度,并将小数位较短的一个数据后补0直至小数位数相同,然后用函数处理输出的数据;(ii)乘除法、乘方:其处理方法较为简单,主要是记录数据中小数位数的长度,然后通过每种运算方式不同的运算原理截取小数位,再按照输出格式将数据处理进行输出;(iii)根据定义,阶乘保持不变;【特色分析】⑴加强版程序加上了简单的声音提示,无论是输入与输出均会有八个音符的其中之一对输入与输出与否进行提示,同时在输入输出数据出错时,还会用三个音符对重输入进行提示,增强了人性化操作;【测试数据】(1)0;0;应输出“0”。
(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。
(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。
四则运算1 课程设计的目的在我们生活中无时无刻不要用到四则运算,虽说四则运算并不是很麻烦,但有的时候复杂的数学四则运算仍需要要花费我们大量的时间去解决,所以要有这样一个程序区解决这个问题。
基于这样的一个目的,在这个学期中,我们又接触到了汇编语言,运用汇编语言编写了计算四则运算程序,来解决这个实际并且常遇到的问题。
该程序主要针对加减乘除运算,可以进行相对复杂的问题,包含括号的相关运算。
该问题主要注意四则运算的优先级问题:乘除运算比加减运算优先级高,同级运算按从左到右的顺序运算,含有括号时应该先计算括号里面的内容。
本程序应采用模块化设计方法,设计几个功能模块。
可以判断括号是否匹配,输入数据是否已经结束,从键盘输入的是否为数字,还设计了一个友好的主菜单,显示出该程序的主要功能。
2 设计方案论证2.1开发环境汇编语言,是面向机器的程序设计语言,汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。
面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
它不仅保持了机器语言的优点,具有直接和简捷的特点。
还可以可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。
目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
汇编语言还经常与高级语言配合使用,应用十分广泛。
汇编语言的开发环境需要TE.EXE编辑软件,主要是进行源程序的编写,汇编软件MASM.EXE,主要作用是对源程序的汇编,调试软件Debug.exe,作用是可执行软件进行调试。
用LINK命令对生成的OBJ文件进行连接可以生成可以执行的EXE文件。
一个汇编程序的编译首先先进入它的根目录,用cd masm 命令进入它的根目录,用masm命令进入根目录,并且生成obj文件,用link命令对程序进行连接,同时生成exe可执行文件,生成可执行文件后,用debug命令对程序进行调试,运用U命令进行反汇编,运用T命令进行单步的执行,等等其他汇编命令。
《微机原理与接口技术》课程设计电气与自动化工程系 通信工程2010年12月23院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:微机原理与汇编语言课程设计一、课程设计目的进行程序设计的方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,打到独立编制和调试一定滚魔的汇编语言程序水平。
二、课程设计题目四则混合运算要求从键盘上输入数字参与运算,并在屏幕上显示结果,至少实现加法减法运算。
从键盘输入一个十进制两位数的四则运算表达式,如23*56-(8*19)/6+67-8=,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),+-*/位置任意。
并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止三、报告内容1.设计主要内容根据题目的要求,该程序设计的关键是要根据四则运算中()、*、/、+、-、=的优先设置符号的权值,其中(、*、+、-、)、=的权值分别设置为5、4、4、3、3、1、0,然后根据权值大小进行运算。
程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。
程序不断判断输入的符号是否是左括号‘(’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘(’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。
可以把整个源程序大致划分为几个基本结构:程序加法、减法、乘法、除法、显示结果五个部分。
首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n执行继续计算和退出操作。
学院:班级:姓名:学号:课程设计题目:四则运算计算器课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月目录概述 (1)一、设计要求 (1)二、设计思想 (1)三、程序工作原理 (2)四、程序流程图及说明 (3)五、程序源代码 (7)六、程序运行示例 (18)七、设计过程中遇到的问题及解决方法 (18)八、设计心得 (19)九、参考文献 (19)四则运算计算器概述此计算器,可以实现从键盘输入一个十进制的四则运算表达式,如:-3+4*(5-6)-8/2,编程计算表达式的值,输出十进制结果。
表达式和结果可以是三位或四位十进制,也可以是带负数的十进制数,并且+-*/()位置任意摆放(只要符合数学上的运算逻辑)。
一、设计要求用汇编语言设计一个程序,用来实现计算器的四则运算功能。
需要实现在屏幕要显示输入的表达式,以及运算结果。
例如:-3+4*(5-6)-8/2计算表达式的结果,并将该表达式及结果显示出来;设计要求如下:(1)由键盘作为输入部分。
(2)能进行四则混合运算,并且能计算带括号和负数的数学表达式。
(3)按ESC 键则退出计算器菜单界面并返回dos 系统,否则继续输入表达式,求得对应的结果。
二、设计思想根据题目的要求,可以把整个源程序大致划分六大步骤。
(1)首先键盘输入合法中缀算术表达式,并将其存储到S1中。
(2)然后调用子程序CHANGE将中缀式转化为后缀式。
(3)调用子程序CALCULATE对后缀表达式进行有符号数的运算,并将最终结果存放在栈中。
(4)POP AX,AX->STORAGE,即用STORAGE 存放最终运算结果。
(5)调用子程序OUTPUT将运算结果输出。
(6)通过用键盘输入ESC退出DOS程序。
三、程序工作原理步骤一的原理:此处用系统功能1号调用,每次从键盘输入一个字符,就将其存入到数组S1中,然后在判断此字符是否为回车,如果不是,则循环,继续输入字符,否则,程序往下执行。
数学与计算机学院微型计算机原理及应用实验报告年级2007级学号2007430092 姓名张新莹成绩专业计算机科学与技术实验地点主楼528 指导教师王龙江实验项目6位十进制四则整数运算计算器实验日期2010-6-25一、实验目的1、实现6位十进制四则整数运算计算器。
2、进一步学习使用8279芯片。
3、理解和掌握计算机硬件系统、底层基础软件的知识和设计。
4、理解和掌握计算机软硬件系统的整体和软硬件系统是如何协调工作的原理和设计与编程等方面知识。
二、实验原理及内容Intel 8279可用作单片机的可编程通用键盘和显示器接口。
利用它能完成键盘输入和显示控制两种功能。
键盘部分提供一种扫描方式,可与64个按键的矩阵键盘连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码。
8279的键盘格式为:实验设定扫描信号连接键盘的列线,回复信号连接键盘的行线,所以,D5 D4 D3表示按下键所在的列号,D2 D1 D0表示按下的键所在的行号。
显示输出时,它有一个16×8位显示RAM,其内容通过自动扫描,可由8或16位LED 数码管显示。
6位十进制四则整数运算计算器的实现用8279芯片提供的扩展键盘和LED 显示器。
显示屏为6位数码管,只需显示十进制整数值,没有小数及负数。
显示器的段选码由OUTA口和OUTB口输出,经74LS244驱动后送给共阴极LED。
显示器的位扫描信号经74LS138译码、75451驱动后提供给LED的公共极。
有效数字前不显示零和没有有效数字时只显示一个零。
比如当3/2时,结果为1.5,但只显示1;当1/2时,结果为0.5,但只显示0。
在输入一位有效数字后,显示的数字都向左移一位。
比如输入13时,先输入1,再输入3,1左移,3进入1左移后空出的位置。
键盘包含:0 ~ 9、+、-、x、/、=、C(清零)共十六个键(不能使用PC机的键盘),有计算结果溢出显示,在显示器上显示特殊字符E。
《微机原理与接口技术》课程设计电气与自动化工程系 通信工程2010年12月23院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:微机原理与汇编语言课程设计一、课程设计目的进行程序设计的方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,打到独立编制和调试一定滚魔的汇编语言程序水平。
二、课程设计题目四则混合运算要求从键盘上输入数字参与运算,并在屏幕上显示结果,至少实现加法减法运算。
从键盘输入一个十进制两位数的四则运算表达式,如23*56-(8*19)/6+67-8=,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),+-*/位置任意。
并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止三、报告内容1.设计主要内容根据题目的要求,该程序设计的关键是要根据四则运算中()、*、/、+、-、=的优先设置符号的权值,其中(、*、+、-、)、=的权值分别设置为5、4、4、3、3、1、0,然后根据权值大小进行运算。
程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。
程序不断判断输入的符号是否是左括号‘(’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘(’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。
可以把整个源程序大致划分为几个基本结构:程序加法、减法、乘法、除法、显示结果五个部分。
首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n执行继续计算和退出操作。
2、设计思路流程图3、程序运行结果输入要计算的式子,按等号输出结果,计算机提示是否继续输入,输入字符y,继续输入,键入n退出程序,如果键入字符为其他,则反回提示输入。
4、附录:程序代码CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSNEXTLINE MACRO ;显示换行宏MOV AH,2MOV DL,10INT 21HMOV AH,2MOV DL,13INT 21HENDMSTART:MOV AX,DATASMOV DS,AXMOV BX,0INPUT1:MOV AH,1 ;从键盘输入一个字符INT 21HCMP AL,'+' ;判断是否为+JZ ADDITIONCMP AL,'-' ;判断是否为-JZ SUBTRATIONCMP AL,'*' ;判断是否为*JZ MULTIPLICATIONCMP AL,'/' 判断是否为/JZ DIVISIONCMP AL,'=' 判断是否为=JZ RESULTCMP AL,58 判断输入是否为数字JS L1JMP INPUT1L1:CMP AL,47节JNS L2JMP INPUT1L2:SUB AL,48 如果输入为数字,将数值计入BX MOV CL,ALMOV AX,BXMOV CH,10MUL CHADD AL,CLMOV BX,AXJMP INPUT1ADDITION: 输入+后,进入加法运算MOV DX,0INPUT2:MOV AH,1 从键盘输入字符INT 21HCMP AL,'+' 判断是否为+JZ L23CMP AL,'-' 判断是否为-JZ L24CMP AL,'*' 判断是否为*JZ L25CMP AL,'/' 判断是否为/JZ L26CMP AL,'=' 判断是否为=JZ L27CMP AL,58 判断是否为数字JS L21JMP INPUT2L21:CMP AL,47JNS L22JMP INPUT2 如果不是数字,则跳转到INPUT2 L22:SUB AL,48 将输入字符转换为数值MOV CL,ALMOV AX,DXMOV CH,10MUL CHADD AL,CLMOV DX,AXJMP INPUT2L23:ADD BX,DX 执行加运算JMP ADDITIONL24:ADD BX,DXJMP SUBTRATIONL25:ADD BX,DXJMP MULTIPLICATIONL26:ADD BX,DXJMP DIVISIONL27:ADD BX,DXJMP RESULTSUBTRATION: 如果输入-,则执行减法 MOV DX,0INPUT3:MOV AH,1INT 21HCMP AL,'+' 判断是否为+JZ L33CMP AL,'-' 判断是否为-JZ L34CMP AL,'*' 判断是否为*JZ L35CMP AL,'/' 判断是否为/JZ L36CMP AL,'=' 判断是否为=JZ L37CMP AL,58 判断是否为数字JS L31JMP INPUT3L31:CMP AL,47JNS L32JMP INPUT3L32:SUB AL,48 将字符转换为数值MOV CL,ALMOV AX,DXMOV CH,10MUL CHADD AL,CLMOV DX,AXJMP INPUT3L33:SUB BX,DX 执行减法操作JMP ADDITIONSUB BX,DXJMP SUBTRATION L35:SUB BX,DXJMP MULTIPLICATION L36:SUB BX,DX JMP DIVISION L37:SUB BX,DXJMP RESULT MULTIPLICATION: MOV DX,0 INPUT4: MOV AH,1 INT 21HCMP AL,'+' JZ L43 CMP AL,'-' JZ L44 CMP AL,'*' 判断是否为* JZ L45CMP AL,'/' 判断是否为/ JZ L46CMP AL,'=' 判断是否为= JZ L47CMP AL,58 判断是否为数字 JS L41 JMP INPUT4 L41:CMP AL,47 JNS L42 JMP INPUT4 L42:SUB AL,48 将字符转换为数值 MOV CL,ALMOV AX,DX 将字输入数字加入数值 MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT4判断是否为+ 判断是否为-MOV AX,BX 将BX移入AXMUL DX 与DX中的数进行乘运算MOV BX,AX 将AX中的数值返回BXJMP ADDITIONL44:MOV AX,BX 将BX移入AXMUL DX 与DX中的数进行乘运算MOV BX,AX 将AX中的数值返回BXJMP SUBTRATIONL45:MOV AX,BX 将BX移入AXMUL DX 与DX中的数进行乘运算MOV BX,AX 将AX中的数值返回BX JMP MULTIPLICATIONL46:MOV AX,BX 将BX移入AXMUL DX 与DX中的数进行乘运算MOV BX,AX 将AX中的数值返回BXJMP DIVISIONL47:MOV AX,BX 将BX移入AXMUL DX 与DX中的数进行乘运算MOV BX,AX 将AX中的数值返回BXJMP RESULTDIVISION:MOV DX,0INPUT5:MOV AH,1INT 21HCMP AL,'+' JZ L53CMP AL,'-' JZ L54CMP AL,'*' JZ L55CMP AL,'/' JZ L56CMP AL,'=' JZ L57CMP AL,58 JS L51 判断是否为+ 判断是否为- 判断是否为* 判断是否为/ 判断是否为= 判断是否为数字JMP INPUT5L51:CMP AL,47JNS L52JMP INPUT5L52:SUB AL,48MOV CL,ALMOV AX,DXMOV CH,10MUL CHADD AL,CLMOV DX,AXJMP INPUT5L53:MOV AX,BXDIV DXMOV AH,0MOV BX,AXJMP ADDITIONL54:MOV AX,BXDIV DLMOV AH,0MOV BX,AXJMP SUBTRATIONL55:MOV AX,BXDIV DLMOV AH,0MOV BX,AXJMP MULTIPLICATION L56:MOV AX,BXDIV DLMOV AH,0MOV BX,AXJMP DIVISIONL57:MOV AX,BXDIV DLMOV AH,0MOV BX,AXJMP RESULTRESULT:显示结果MOV CH,10MOV CL,100R1: 将BX中的计算结果以十进制输出 MOV AX,BXDIV CLMOV DL,ALMOV DH,AHMOV AL,AHMOV AH,0MOV BX,AXADD DL,48MOV AH,2INT 21HMOV AH,0MOV AL,CLDIV CHMOV CL,ALCMP CL,1JZ R2JMP R1R2:MOV DL,DHADD DL,48MOV AH,2INT 21HS2:NEXTLINELEA DX,STRING 询问是否继续输入MOV AH,9INT 21HMOV AH,1INT 21HCMP AL,'y' 输入y则跳转到S1JE S1CMP AL,'n' 输入n则跳转到S3,即结束程序 JE S3JNE S2S3:MOV AH,4CHINT 21HCODES ENDS。