汇编课程设计报告-四则运算
- 格式:doc
- 大小:192.00 KB
- 文档页数:14
《四则运算》教学设计《四则运算》教学设计1教学设计思路:根据课堂教学设计的基本原理,并结合《小学数学课程标准》,制定了“四则运算”第二课时的教学设计方案。
按照“复习旧知识——导入新知识——学习新知识——巩固新知识——布置作业”五个环节来设计课堂的。
在导入中给学生留下问题情境,再带领学生继续学习四则运算的第二条定律。
通过讲解例题和例题拓展学生自己找出运算定律:在没有括号的算式里,如果既有加、减法,又有乘、除法,先算乘、除法,再算加、减法。
接着学生练习、巩固今天的学习内容,知道如何将分步运算写成综合式子,并且按运算定律计算结果。
1、学习任务分析“四则运算”是《义务教育课程标准实验教科书数学》(人教版)四年级下册第一章的内容。
本节课内容通过爸爸妈妈带玲玲去“冰天雪地”游玩买门票这一具体生活实例,引发出有关四则运算的运算法则的数学问题。
在活动中让学生了解这一知识的生成过程,提高列综合算式解决实际问题的能力。
将混合运算赋予了生活中的现实意义,从而达到在感悟、理解的基础上尝试概括总结,掌握运用。
(1)教学重点学生理解掌握在没有括号的情况下,既有加、减法又有乘、除法的算式的运算顺序。
(2)教学难点学生理解归纳:“先算乘、除”,“后算加、减”的运算规律。
2、学习者分析学习者是小学四年级的学生,已具备了归纳总结的能力。
上节课已经学习了四则运算的第一条定律:在没有括号的算式里,如果只有加、减法或者只有乘、除法,都按从左到右的顺序计算。
这节课需要学生自己总结出运算定律:在没有括号的算式里,如果既有加、减法,又有乘、除法,先算乘、除法,再算加、减法。
这还是有一定难度的。
3、教学目标(1)知识与技能目标:掌握在没有括号的情况下,既有加、减法又有乘、除法的算式的运算顺序及格式。
通过对运算顺序的了解,结合本节课内容,培养学生的归纳概括能力以及基本的运算能力和技巧。
(2)过程与方法:会把分步算式写成综合算式,学生理解和自主探讨归纳正确的运算步骤和规律。
目录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. 培养学生的计算能力,提高他们的心算速度和准确性。
3. 通过实践操作,让学生理解并掌握数学运算的顺序。
二、教学内容:1. 四则运算的定义与符号- 加法(+)- 减法(-)- 乘法(×或·)- 除法(÷或/)2. 四则运算的规则:- 加法和乘法满足交换律和结合律- 减法和除法不满足交换律,但满足结合律- 先乘除后加减三、教学方法:1. 讲解法:教师通过讲解,使学生理解四则运算的基本概念和规则。
2. 实践法:通过大量的习题练习,让学生在实践中掌握四则运算的方法。
四、教学步骤:1. 引入新课:教师可以通过生活中的实例引入四则运算,如购物时的找零问题等。
2. 新知识讲解:教师详细讲解四则运算的定义、符号以及运算规则。
3. 学生实践:分发习题给学生,让他们进行计算练习。
教师可以在此过程中进行指导和纠正。
4. 总结反馈:对学生的练习情况进行总结,表扬优秀的学生,鼓励进步慢的学生。
五、教学评价:1. 过程评价:观察学生在课堂上的参与度和学习态度。
2. 结果评价:通过作业和测试来评估学生对四则运算的理解和掌握程度。
六、教学反思:在教学过程中,教师应时刻关注学生的学习情况,适时调整教学策略。
对于学习困难的学生,教师应给予更多的关心和帮助。
七、家庭作业:布置一些关于四则运算的习题,让学生在家里进行复习和巩固。
以上就是以“四则运算”为主题的数学教案设计,希望对学生的学习有所帮助。
*******************实践教学*******************兰州理工大学技术工程学院2013年春季学期汇编语言实训课程设计题目:四则运算计算器专业班级:计算机科学与技术姓名:___郭利强_____学号: 11730108指导教师:刘树群成绩:计算机科学与技术专业(11级)汇编语言实训课程设计任务书题目:四则运算计算器班级: 11计算机科学与技术1班学生姓名:郭利强学号: 11730108 题目类型:软件工程(R)指导教师:刘树群一.题目简介四则运算计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。
通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对汇编语言基本语言要素和流程结构的理解,针对汇编语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
得到软件工程的综合训练,提高解决实际问题的能力。
二.设计任务1、查阅文献资料,一般在5篇以上;2、要求可以进行四则运算;3、完成软件结构设计和算法设计;4、完成系统的软件开发和测试工作;5、撰写设计说明书;6、做好答辩工作。
三.主要内容、功能及技术指标1、实现功能及指标:①使用Win32的窗口程序模式,实现四则运算程序的设计与开发;②界面友好。
2、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。
在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。
最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。
3、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。
4、上机前程序静态检查:上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。
静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。
四则运算教案(通用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天的人数。
老师:也就是说,这道乘除混合的算式你是按照从左到右的顺序的。
课程设计实验报告: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选题背景及意义运用汇编语言,实现简单计算器的一般功能.通过该程序设计,让我们熟悉并掌握DOS系统功能调方法用及BIOS系统功能调用方法,同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程,以及掌握DEBUG的一系列的功能执行命令,及用它进行调试,运行功能。
2主要设计内容及预期目标设计一个能实现加减乘除取余计算的程序。
将键盘输入的表达式预放入一缓冲区中,然后从该缓冲区的第一个字符开始读取判断,当读到一个有效的表达式时对表达式进行相应的运算后,输出用十六进制数表示的运算结果。
目标:要求该程序接受从键盘输入的十六进制数,执行相应的计算后,计算结果以十六进制数输出。
3 概要设计本题目实现的模块图如图3-1所示图3-1 概要模块(1)界面设置主要实现确定界面样式的功能,以菜单形式显示。
(2)选择算法设置用于选择加、减、乘、除法来进行运算。
(3)十进制转换设置应用十进制的转换算法来处理加、减、乘、除法四则运算。
4 详细设计4.1 界面设置通过定义数据段,利用09H显示出功能列表。
通过定义数据段,以字符串的形式输入每个提示信息,利用09H键盘输入并回显命令显示每一个功能提示,是计算器的功能列表有序清晰的显示在屏幕上。
4.2 选择算法设置首先选择要进行的四则运算,若选择1,则进行加法;若选择2,则进行减法;若选择3,则进行乘法;若选择4,则进行除法。
四则运算教学设计(精选5篇)四则运算教学设计(精选5篇)作为一位杰出的教职工,通常会被要求编写教学设计,教学设计把教学各要素看成一个系统,分析教学问题和需求,确立解决的程序纲要,使教学效果最优化。
教学设计应该怎么写才好呢?下面是小编精心整理的四则运算教学设计(精选5篇),欢迎大家借鉴与参考,希望对大家有所帮助。
运算教学设计1一、教材简析:人教版实验教材根据《标准》的理念与目标要求能结合现实素材理解运算顺序,并进行简单的整数四则混合运算(以两步为主,不超过三步)(《标准》P21),采取的是与解决问题相结合的编排方式。
在此之前,学生已经学会按从左往左的顺序计算两步式题,并且知道小括号的作用,这里主要教学含有两级运算的运算顺序(特别值得注意的是象24-82这样乘除在后的类型是第一次出现),并对此前学习过的四则混合运算进行较为系统的梳理、概括和总结。
本单元的主要内容可分为两块:1.与解决问题相结合,整理四则混合运算的顺序2. 有关0的运算。
本单元是从解决问题的角度教学整理四则混合运算的顺序,其中的问题是需要两、三步计算解决的问题。
教材创设了热闹的滑雪场情境,由此生出一系列的情境串,引出相应的4个例题。
每个例题都呈现了学生交流不同的解题思路,以及整理混合运算的画面,以鼓励学生在已有的知识基础上,积极思考、归纳,主动解决问题。
二、教学目标:1.进一步掌握含有两级运算的运算顺序,正确计算三步式题;2.让学生在经历探索和交流解决实际问题的过程中,感受解决问题的一些策略和方法,学会用两、三步计算解决一些实际问题;3.小学数学四年级下册《四则运算》教学计划:使学生在解决实际问题的过程中,养成认真审题、独立思考等学习习惯。
三、教学重点、难点:1、教学重点:引导学生发现并总结出有括号的算式要先算括号里的运算顺序。
借助括号的加入体会解决问题途径的多样性。
2、教学难点:会用括号列综合算式。
四、单元教学措施:1、充分利用教学中的情境图,以及教参给学生呈现出生动有趣的教学内容。
华北科技学院课程设计说明书专业:网络工程课程名称:汇编课程设计班级:姓名:学号:设计题目: 四则运算设计时间: 2011-12-05 至2011-12-16评语: ________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____一、问题陈述及其需求分析问题要求:利用汇编语言编写四则运算的基本方法。
内容:从键盘输入一个十进制两位数的四则运算表达式,如23*56-(8*19)/6+67-8=,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),+-*/位置任意。
并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止。
四则运算主要包括以下几个模块:(1)主程序模块.(2)赋权宏模块.(3)加减乘除运算子程序模块.(4)调用赋权宏子程序模块.(5)清屏子程序模块.(6)回车换行宏模块.(7)9号功能显示字符串宏模块.二、总体设计程序设计组成框图程序设计流程图三、详细设计算法说明1.主程序模块.主程序模块首先实现调用子程序clear清屏,初始化数据段,加载附加段,调用显示宏show 显示界面,将寄存器ax,bx,cx,dx初始化赋初值为0,调用回车换行宏,输入字符或数字并判断,调用子程序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.清屏子程序模块.本模块先将即将用到的ax,bx,cx,dx寄存器入栈保存,通过ah=06h屏幕上卷功能,用bh=07h 将屏幕设置为黑底白字格式,给dh,dl赋值将其清屏位置设定在30行80列范围.从而实现了清屏功能,然后再将ax,bx,cx,dx寄存器出栈.6.回车换行宏模块.通过2号功能的输出功能,将0dh赋予dl输出,再调用2号功能,将0ah赋予dl输出,从而实现回车换行功能.7.9号功能显示字符串宏模块.通过定义宏show,用9号显示功能,通过变元str将字符串显示出来.四、编码和测试1.程序运行结果主界面如图所示。
学院:班级:姓名:学号:课程设计题目:四则运算计算器课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月目录概述 (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中,然后在判断此字符是否为回车,如果不是,则循环,继续输入字符,否则,程序往下执行。
课程设计报告一.课程设计的性质和目的性质:《汇编语言》是计算机科学与技术专业及网络工程本科学生必修的专业课程。
目的要求:进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。
二.课程设计的要求1.遵循模块化、结构化的程序设计方法。
2.要求程序必须正确。
3.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。
4.要求程序结构合理,语句使用得当。
5.适当追求编程技巧和程序运行效率。
三.主要仪器设备及软件计算机、MASM汇编软件。
四.设计题目四则运算:从键盘输入一个十进制两位数的四则运算表达式,如23*56-(8*19)/6+67-8=,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),+-*/位置任意。
并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止。
五.题目分析根据题目的要求,可以把整个源程序大致划分为几个基本结构,程序加法、减法、乘法、除法、显示结果五个部分,首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n执行继续计算和退出操作六.运行结果输入要计算的式子,按等号输出结果,计算机提示是否继续输入,输入字符y,继续输入,键入n退出程序,如果键入字符为其他,则反回提示输入如图:七.程序流程主程序流程八.代码根据题目的要求,可以把整个源程序大致划分为几个基本结构,程序加法、减法、乘法、除法、显示结果五个部分1、源程序:DATAS SEGMENT ;定义数据段STRING DB "Continue?$"DATAS ENDSSTACK SEGMENT STACK ;定义堆栈段DB 100 DUP(?)STACK ENDSCODES SEGMENT ;定义代码段ASSUME CS:CODES,DS:DATAS,SS:STACKNEXTLINE 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,47JNS L2JMP INPUT1L2:SUB AL,48 ;如果输入为数字,将数值计入BXMOV 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 ADDITIONL34:SUB BX,DXJMP SUBTRATIONL35:SUB BX,DXJMP MULTIPLICATIONL36:SUB BX,DXJMP DIVISIONL37:SUB BX,DXJMP RESULTMULTIPLICATION:MOV DX,0INPUT4:MOV AH,1INT 21HCMP AL,'+' ;判断是否为+JZ L43CMP AL,'-' ;判断是否为-JZ L44CMP AL,'*' ;判断是否为*JZ L45CMP AL,'/' ;判断是否为/JZ L46CMP AL,'=' ;判断是否为=JZ L47CMP AL,58 ;判断输入是否为数字 JS L41JMP INPUT4L41:CMP AL,47JNS L42JMP INPUT4L42:SUB AL,48 ;将字符转换为数值MOV CL,ALMOV AX,DX ;将字输入数字加入数值 MOV CH,10MUL CHADD AL,CLMOV DX,AXJMP INPUT4L43:MOV AX,BX ;将BX移入AXMUL DX ;与DX中的数进行乘运算MOV BX,AX ;将AX中的数值返回BX JMP ADDITIONL44:MOV AX,BXMUL DXMOV BX,AXJMP SUBTRATIONL45:MOV AX,BXMUL DXMOV BX,AXJMP MULTIPLICATIONL46:MOV AX,BXMUL DXMOV BX,AXJMP DIVISIONL47:MOV AX,BXMUL DXMOV BX,AXJMP 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 L51JMP 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:DIV DLMOV AH,0MOV BX,AXJMP SUBTRATIONL55:MOV AX,BXDIV DLMOV AH,0MOV BX,AXJMP MULTIPLICATIONL56: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 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,STRINGMOV AH,9INT 21HS1:MOV AH,1INT 21HCMP AL,'y' ;输入y则跳转到S1JE S1CMP AL,'n' ;输入n则跳转到S3,即结束程序 JE S3JNE S2S3:MOV AH,4CHINT 21HCODES ENDSEND START九.心得体会程序的主要功能是实现四则运算,整个程序中主要分为,输入算式,加法,减法,乘法,除法和以十进制显示结果这几个部分本程序基本实现了四则运算的功能,但还没能实现带有括号的四则运算以及带负数的四则运算,还有在运算中不能运算较大的数,不然会产生溢出现象一开始的时候我们编出来的程序有很多问题,尤其是在循环程序上,因此查阅了不少资料,也请教了好几个同学帮着修改,调试了好久才能正常运行。
由于动手水平能力有限,程序还是有不完美的地方。
这次的综合实验让我们对汇编有了更深刻的认识,对各种指令有了进一步的理解。