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行显示结果。
用汇编语言处理计数器2字节数据的程序
[[[[MOV A,#0
CJNE A,TH0,HAI0
HAI0:NOP
JC LOOP1
AJMP DIZIJIECHULI
LOOP1:
MOV A,#56
ADD A,40H
CJNE A,#100,HAI1
HAI1:NOP
JC LOOP2
SUBB A,#100
LOOP2:
用汇编语言写计数器数据处理的程序
汇编语言只能直接处理8位2进制数,很多童鞋在使用单片机的计数器些技术程序涉及到用BCD码显示时候都不知怎么处理,我自己谢啦个采用中断处理显示的程序希望能够帮到大家。程序大致是这样些的:如果TH0>表明计数器计数值大于256需要处理TH0中的数据,具体处理过程在第一个四方括号里面处理的数据存放在40H(<100) 41H(<100) 42H(<6) 采用100进制的方法在一字节存储单元中存放<100的数,又由于单片机T0计数器最高只能记到65536,所以最高位42H中的数据最高到6,TH0中的数据处理完要把TL0中的数据加进去(看标号:DIZIJIECHULI)同样把结果存在上面三个单元中,最后进行BCD码转换存储(看标号:BCDZHUANHUAN)BCD码处理后存在50,51H,52H中。不过由于处理程序过长,我写程序时是把这个程序写成中断程序的,采用外部中断触发,希望能帮到广大的童鞋们。(⊙_⊙)
MOV 40H,A
MOV A,#2
JC LOOP3
INC A
LOOP3:
ADD A,41H
CJNE A,#100,HAI2
HAI2:NOP
JC LOOP4
INC 42H
汇编语言计算器课程设计概要
图4 执行方法
在计算器内,输入数字测试本程序的正确与否。
按照提示输入第一个十进制数,如“6”,回车。
下一步,会提示请输入运算符,如加,回车。
最后一步,输入第二个十进制数,如“3”,回车。
则显示出其运算结果。
如所示:
课程设计说明书参考文献 NO.11 [1] 詹仕华. 汇编语言程序设计[M]. 北京: 中国电力出版社, 2008.2:73-102 [2] 宋彩莉 , 王禾 . 汇编语言程序设计学习指导[M]. 西安: 西安交通大学出版社 , 2008.2:45-87 [3] 李敬兆, 陈子旭. 汇编语言程序设计[M].合肥: 中国科学技术大学出版社, 2008.9: 173-197 [4] 钱晓捷, 周玲. 新汇编语言程序设计[M]. 北京: 电子工业出版社, 2006.3:101-120 [5] 周佩玲, 彭虎, 傅忠谦. 微机原理与借口技术[M]. 北京: 电子工业出版社, 2007.1: 113-141 [6] 马春燕. 微机原理与接口技术(基于 32 位机)实验与学习辅导[M]. 北京: 电子工业出版社, 2007.1:23-70 [7] 何小海, 严华. 微机原理与借口技术[M]. 北京:科学出版社, 2006.7:143-180 [8] 王爽, 胡雄. 汇编语言[M]. 北京: 清华大学出版社, 2009.9:29-70 [9] 曹加恒, 谢子殿. 新一代汇编语言课程设计[M]. 北京: 高等教育出版社, 2006.3:
113-138 [10] 杨路明. 汇编语言程序设计[M]. 长沙: 中南大学出版社, 2008.5:173-203 沈阳大学科技工程学院。
汇编课程设计计算器
汇编课程设计计算器一、课程目标知识目标: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文本框以及相关按钮组成,按钮方面应人性化对按钮进行全面分析设计,使使用者能更好更简洁的使用相关操作。
基于PLC两位计算器课程设计(打印)
可编程自动化控制器(PAC)技术及应用—两位计算数器控制系部:机械工程系专业:机械电子工程班级:0920122指导老师:周敏设计成员:03 号王义春06 号李文卿26 号李运祥28 号唐心勇目录1.题目要求分析 (3)1.1课题内容1.2课题要求2.设计思路分析 (3)3.控制系统的I/O及地址分配 (4)4.电器控制系统原理图 (5)4.1系统框图4.2硬件选型5. 项目模拟设计 (7)5.1界面设计5.2程序设计6.总结 (17)7.参考文献 (17)PAC两位计算器程序设计1.题目要求分析1.1课题内容设计要求:在0~9十个数中分别任意选择数字,从00~99进行四则运算,并将输入数、运算符号及结果均通过八段码显示。
当出错或溢出时有相应的显示。
1.2课题要求1)按题意要求,画出PLC端子接线图、控制梯形图。
2) 完成PLC端子接线工作,并利用编程器输入梯形图控制程序,完成调试。
3) 完成课程设计说明书。
2.设计思路分析:在本次计算器设计中,依次考虑以下内容。
(1)完成数字的输入由于计算器的按钮均为非自锁按钮,并且人为输入时按键按下时间一般会比一个扫描周期长,因此使用的正跳变触点完成一个数字的传送。
例如,当按I00101键,表示输入“1”这个数字时,将数字“1”传送至存储器(2)当进行除法运算时,需判断除数是否为零,当除数为零时不再进行计算,并显示“E”,表示溢出,此时需按下清零键方可进行正常运算。
(3)输入的数据及计算结果的显示将每次输入的数据及运算结果均存入%R00001,随时将%R00001的内容转换为BCD码存入%R00007,并进行显示。
数据的显示本项目为二位数的四则运算,因此采用两个数码分别显示个位数和十位数,因个位数与十位数的显示相类似,考虑采用子程序的形式完成BCD 码(4)数字的显示。
按下清零键将所有用到的存储器%R00001和运算符对应的寄存器%M00001~%M00008均清零,计算重新开始。
汇编语言程序的设计————计算器
课程设计说明书题目: 表达式计算器学号:41212241班级: 计算机创新实验班:廖福轩目录一.设计容 (2)二.设计方案 (3)1.主程序模块. (3)2.赋权值模块. (3)3.加减乘除运算子程序模块. (3)4.调用赋权宏子程序模块. (3)5.回车换行宏模块. (3)6.9号功能显示字符串宏模块. (2)三.设计框图 (3)四.程序代码 (4)五.运行结果 (11)六.设计总结 (11)计算器汇编语言程序设计一.设计容从键盘输入一个十进制两位数的四则运算表达式,如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将字符串显示出来。
汇编--计算器
目录一、计算器的具体功能.......................................... 错误!未定义书签。
二、软件设计流程极其描述.................................. 错误!未定义书签。
三、源程序代码 (12)四、课程设计体会 (23)五、参考文献 (23)附录 (23)一、计算器的具体功能1、输入一个正数后按回车可以直接输出该正数;2、输入一个负数后按回车可以直接输出该负数;3、可以进行有符号数的加运算;4、可以进行有符号数的减运算;5、可以进行有符号数的加、减运算;6、可以进行有符号数的乘运算;7、可以进行有符号数的除运算;8、可以进行有符号数的乘、除运算;9、可以进行有符号数的加、减、乘、除四则运算;10、支持使用括号改变运算顺序;11、输入一个数值不是很大的合法的算术表达式并按回车,可以得到正确的结果。
二、软件设计流程极其描述《一》、软件设计简要流程下页所示:以上为主流程图以上为中缀表达式转化为后缀表达式的流程图。
其每次向S2中输入一个字符,DI就会加1。
当压入‘(’后,再压入0作为运算符优先级的判断;当压入‘+’或‘-’后,再压入01作为运算符优先级的判断;当压入‘*’或‘/’后,再压入02作为运算符优先级的判断。
以上为计算后缀表达式数值的流程图以上为输出运算结果程序的流程图《二》、简要流程中五大步骤的具体描述1、步骤(一):从键盘输入合法中缀算术表达式,并将其存储到S1中此处用系统功能1号调用,每次从键盘输入一个字符,就将其存入到数组S1中,然后在判断此字符是否为回车,如果不是,则循环,继续输入字符,否则,程序往下执行。
2、步骤(二):调用子程序CHANGE将中缀式转化为后缀式此处最核心的就是中缀表达式转化为后缀表达式的算法。
具体思路为:用一个栈来存储与运算符号.先将字符’@’压入栈中,并假设其优先级为0.然后遍历S1中的字符,遇到数字直接存入S2中并且输完数字后向S2中输入一空格以备计算结果时用。
课程设计(论文)pac两位计算器程序设计
课程设计PAC两位计算器系别:自动化系专业:自动化班级:0920391组长:小组成员:指导老师:日期:2012年4月14日目录1.题目要求分析 (3)1.1课题内容1.2课题要求2.设计思路分析 (3)3.控制系统的I/O及地址分配 (4)4.电器控制系统原理图 (5)4.1系统框图4.2硬件选型5. 项目模拟设计 (7)5.1界面设计5.2程序设计6.总结 (17)7.参考文献 (17)PAC两位计算器程序设计1.题目要求分析1.1课题内容设计要求:在0~9十个数中分别任意选择数字,从00~99进行四则运算,并将输入数、运算符号及结果均通过八段码显示。
当结果超出两位数时,实现分时显示,当出错或溢出时也有相应的显示。
1.2课题要求1)按题意要求,画出PLC端子接线图、控制梯形图。
2) 完成PLC端子接线工作,并利用编程器输入梯形图控制程序,完成调试。
3) 完成课程设计说明书。
2.设计思路分析:在本次计算器设计中,依次考虑以下内容。
(1)完成数字的输入由于计算器的按钮均为非自锁按钮,并且人为输入时按键按下时间一般会比一个扫描周期长,因此使用的正跳变触点完成一个数字的传送。
例如,当按I00101键,表示输入“1”这个数字时,将数字“1”传送至存储器(2)输入并存储运算符1)“+”,“-”,“*”,“/”四个运算符分别对应于四个位寄存器%M00001~%M0000再次按下1时进行1乘以10再加1结果传送至寄存器,当按下其中的一个运算符的瞬间,将其对应的寄存器置“1”。
2)当第一次按下运算符或“=”时,做以下工作:将本次输入的运算符保存至%M00001~%M00004中;将第一次输入的数据转存至%R00002中,并清除%R00001中的内容。
3)当第二次或多次按下运算符或“=”,做以下工作:将上一次输入的运算符移入%M00005~%M00008中,同时将本次输入的运算符仍存入%M00001~%M00004,以备下次使用;使用%M00005~%M00008中所保存的上次输入的运算符,进行需要的运算,计算结果仍放回%R00001中,同时将结果转存至%R00002,以备下次运算时使用。
二位二进制计数器(DOC)
课程设计任务书学生姓名杜佳专业班级计算机zy1202班指导教师袁晓玲学院名称计算机科学与技术学院一、题目:二位二进制计数器。
外部输入X=1时,计数器加1计数,外部输入X=0时,计数器保持不变。
原始条件:使用D触发器( 74 LS 74 )、“与”门( 74 LS 08 )、“或”门( 74 LS32 )、非门( 74 LS 04 ),设计二位二进制计数器。
二、要求完成设计的主要任务如下:1.能够运用数字逻辑的理论和方法,把时序逻辑电路设计和组合逻辑电路设计相结合,设计一个有实际应用的数字逻辑电路。
2.使用同步时序逻辑电路的设计方法,设计二位二进制计数器。
写出设计中的三个过程。
画出课程设计图。
3.根据74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路引脚号,在设计好的二位二进制计数器电路图中标上引脚号。
4.在试验设备上,使用74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路连接、调试和测试二位二进制计数器电路。
5.设计报告书包括:设计内容与设计要求、设计原理和过程、调试分析、心得体会、参考文献。
三、课程设计进度安排指导教师签名:年月日系主任(责任教师)签名:年月日一、实验目的:1、深入了解和掌握同步时序逻辑电路的设计过程;2、了解74LS74、74LS08、74LS32、74LS86及74LS04芯片的功能;3、能够根据电路图连接好实物图,并实现其功能。
学会设计过程中的检验与完善。
二、题目理解和功能描述:用数字逻辑实验板和若干集成芯片实现如下功能:利用逻辑电平区域中八盏灯的任三盏作为实验的输入和输出,其中以1盏灯(如K1)作为输入x,用以改变输入的0、1特性,对应两位二进制数的四个状态,二位二进制计数器逻辑结构如图一所示。
计数器输出y 2 y 1输入x时钟输入图1 两位二进制数逻辑结构当输入x 为1时对应的输出序列:此时实验板上输出灯的亮暗变化如下:题目:二位二进制计数器。
简易2位计算器设计
2位计算器设计一、Protel制图1、功能简介:能完成两位数的计算2、按键分配:0,1,2,3,4,5,6,7,8,9,10 “+”,11“-”,12“*”,13“/”,15“=”二、程序分析#include<reg51.h>#define uchar unsigned char#define uint unsigned intunsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //段码控制uchar idata com1,com2;sbit LED1=P2^7;//数码管选择位sbit LED2=P2^6;//数码管选择位void delay(uint t) //延时函数{uint i,j;for(i=110;i>0;i--)for(j=t;j>0;j--);}uchar Keyboard() //按键判断{uchar temp=0;uchar com=0;P3=0xf0;if(P3!=0xf0)//采用这种方法按键判断简洁{com1=P3;P3=0x0f;com2=P3;temp=com1|com2;}P3=0xf0;while(P3!=0xf0);if(temp==0xee)com=0;else if(temp==0xde)com=1; else if(temp==0xbe)com=2; else if(temp==0x7e)com=3; else if(temp==0xed)com=4; else if(temp==0xdd)com=5; else if(temp==0xbd)com=6; else if(temp==0x7d)com=7; else if(temp==0xeb)com=8; else if(temp==0xdb)com=9; else if(temp==0xbb)com=10; else if(temp==0x7b)com=11; else if(temp==0xe7)com=12; else if(temp==0xd7)com=13; else if(temp==0xb7)com=14; else if(temp==0x77)com=15; else com=16;return(com);}void main()unsigned char i=0,times=0,flag;unsigned int value;bit xx;uchar val[2];P1=0x00;while(1){i=Keyboard(); //读取按键值if(i<10) //数字输入{times++;//用以区别数字的个位和十位;if(xx)//xx判断是加号之前的数字还是加号之后的数字{if(times==1){val[1]=i; }if(times==2){val[1]=val[1]*10+i; }value=val[1];}else{if(times==1){val[0]=i;}if(times==2){val[0]=val[0]*10+i; }value=val[0];}}if((i>9)&&(i<14)) //运算符{ xx=1;times=0;flag=i;}if((i==15)&&(xx==1))//等号{times=0;xx=0;switch(flag){case 10:{value=val[0]+val[1];break;} case 11:{value=val[0]-val[1];break;} case 12:{value=val[0]*val[1];break;} case 13:{value=val[0]/val[1];break;} default: break;}}LED1=0;LED2=1;P1=Disp_Tab[value%10]; //用数码管显示delay(10);LED1=1;LED2=0;P1=Disp_Tab[value/10];delay(10);}}。
汇编语言课程设计任务书--简易计算器,实现整数(2个字节的无符号数)的四则运算
简易计算器,实现整数(2个字节的无符号数)的四则运算
指导教师
谷赫
答疑教师
谷赫
设计时间
2011年12月31日-----2012年1月6日
设计要求
一、设计目的
1.对已学过的汇编语言程序设计知识进行综合运用;
2.能按要求设计出可执行的汇编源程序并进行调试。
二、设计任务
1、通过键盘输入操作数和运算符后,显示出算式和运算结果。
知识改变生活精品word文档值得下载值得拥有知识改变生活精品word文档值得下载值得拥有汇编语言程序设计课程设计任务书简易计算器实现整数2个字节的无符号数的四则运算指导教师设计时间2011年12月31日2012设计要求一设计目的1
《汇编语言程序设计》课程设计任务书
专业
计算机科学与技术
班级
电算B10209
01月04日:根据流程图,编写汇编语言源程序。
01月05日:调试汇编语言源程序,完成基本功能,得出最后结果。
01月06日:准备资料,进行答辩。
注:上交设计报告。重点阐述程序的有关算法说明、程序的流程图以及子程序的功能和参数的说明及程序代码。
系(教研室)主任签字:年月日
2、分析问题,给出程序流程图。
3、适当的使用子程序。
4、调试汇编语言源程序。
三、知识点掌握掌握并深入理解汇编语言程序 Nhomakorabea计方法;
掌握汇编语言提供的指令及其使用方法;
掌握中断的基本概念,并熟悉DOS功能调用的使用方法;
学会汇编语言源程序调试的全过程。
四、时间安排
12月31日:收集资料,进行问题分析,得到程序流程图。
8279实现的两位数加减乘除计算器实验报告
中国矿业大学计算机科学与技术学院硬件课程设计报告专业:计算机科学与技术班级:设计题目:简单计算器成员:指导教师:职称:2012年10月12日简单计算器目录1.设计任务与要求………………………….2. 8279可编程设置型键盘/显器介绍………1 8279特点………………………………………………………………..2 8279引脚说明……………………………………………………………3 8279结构…………………………………………………………………..4 8279的控制字………………………………………………………………3.硬件连接及初级设计说明……………1 硬件连接……………………………………………………………………2 计算功能…………………………………………………………………..3 输入功能…………………………………………………………………4 三个模块…………………………………………………………………..5 LED发光显示…………………………………………………………….4.程序流程图…………………………………1 键盘读数流程图……………………………………………………………..2 程序处理流程图……………………………………………………………..3 显示程序流程图……………………………………………………………..4 计算过程流程图………………………………………………………………5 总程序流程图………………………………………………………………..5.程序设计…………………………………..1 代码…………………………………………………………………………6.收获与会…………………………………..7.参考文献……………………………………硬件课程设计总体报告选题:电子计算器1.设计任务与要求1.1设计概况1设计人员:2设计目标:通过汇编语言编程,再利用硬件课程实验箱实现计算器功能。
包括带符号的两位数的加减乘除运算。
3主要工具:硬件课程设计实验箱(8279),HK88TE软件等。
两位倒计时器程序(单片机―汇编语言)
两位倒计时器程序ORG00HJMPSTARTORG30HSTART:MOVP2,#00H;位选置低电平显示00MOVP3,#0FH;键盘置P3.4低电平MOVR4,#0;显示标志显示00MOVDPTR,#TABLE;SETBP0.7K:MOVR3,#00HJNBP3.0,W1JNBP3.1,W2JNBP3.2,INTJMPDISPW1:JBP3.0,IN1MOVR3,#1 JMPDISPW2:JBP3.1,IN0MOVR3,#2 DISP:JNBP3.3,START MOVA,R4 MOVB,#10 DIVABMOV21H,B DISP1:SETBP2.1CLRP2.0LCALL DELDISP2:MOVA,21H SETBP2.0CLRP2.1LCALL DELCJNER3,#4,K1DJNZR2,DISPDJNZR1,DISPAJMPINTK1:INCR3CJNER3,#3,K2AJMPW2K2:CJNER3,#2,KAJMPW1IN1: CJNER4,#99,ADD1AJMPSTARTADD1:INCR4;按键按下或未弹起标志;判断按键S1是否按下转判断S1按键是否弹起;判断按键S2是否按下转判断S2按键是否弹起;判断按键S3是否按下转倒计时设置子程序;转显示和判断按键S4是否按下;判断按键S1是否弹起转加1子程序设置;设置按键S1未弹起标志;转显示和判断按键S4是否按下;判断按键S2是否弹起转减1子程序设置;设置按键S2未弹起标志;判断按键S3是否按下转复位;;显示十位;调用显示和延时子程序;显示个位;调用显示和延时子程序;判断按键S3是否按下否就转判断其他按键按下情况;倒计时显示延时:0.5msX200=200ms=0.2s;倒计时显示延时:0.5msX2X5+200ms=205ms=0.205s转倒计时设置子程序;判断按键按下或未弹起标志加1;判断按键S2是否按下未弹起否就转判断其他按键按下情况;转继续转判断S2按键是否弹起;判断按键S1是否按下未弹起否就转判断其他按键按下情况;转继续转判断S1按键是否弹起;判断当前值是否为99否就转加1子程序(加1子程序设置);复位;当前值加1(加1子程序);AJMPK;转继续判断是否有按键按下INT:MOVR3,#4;设置倒计时标志(倒计时子程序设置)MOVR2,#200;置显示中循环次数MOVR1,#5;置显示外循环次数IN0: CJNER4,#0,SUBB1;判断当前值是否为0否就转减1子程序(减1子程序设置)CJNER3,#4,SUBB0;如果当前值为0判断S3是否按下否就S2按下转减1AJMPSTART;转复位SUBB0:MOVR4,#100;100-1=99(0-1=99)SUBB1:DJNZR4,DISP;当前值减在转显示(减1子程序)CJNER3,#4,K;判断S3是否按下否就转继续判断是否有按键按下CLRP0.7;蜂鸣MOVP2,#00H;位选置0开MOVP1,#3FH;当前值显示00MOVR3,#5;置蜂鸣延时次数标志DELAY:MOVR7,#250DELA:MOVR6,#20DEL:MOVCA,@A+DPTRMOVP1,AMOVR5,#200DJNZR5,$;2机周X250X1us/机周=500us=0.5msCJNER3,#5,EXIT;判断是否是蜂鸣的延时不是转中断返回DJNZR6,DEL;0.5msX10=5msDJNZR7,DELA;5msX200=1000ns=1s AJMPSTART;复位EXIT:RETTABLE:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHEND。
汇编语言程序设计————计算器
目录一.设计内容 (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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息学院课程设计题目:2位数计算器程序设计 __姓名: __ _____ 学号: ____ ___ 班级:课程:汇编语言 ________ 任课教师:*** ____2011年12月课程设计任务书及成绩评定目录摘要 (2)1.设计目的………………………………………………………………………………………………•2 2.概要设计………………………………………………………………………………………………•32.1系统总体分析…………………………………………………………………………•32.2程序流程图 (3)3.详细设计......................................................................................................• (4)3.1主程序及子程序说明 (4)3.2程序代码编写 (4)4.程序调试 (6)4.1运行界面分析 (6)4.2算法的分析 (6)4.3调试过程及分析 (6)5.心得体会 (7)5.1设计体会...................................................................................................• (7)5.2系统改进...................................................................................................• (7)参考文献 (8)摘要本次课程设计的题目是用汇编语言实现一个简单的2位数计算器,要求:编写一个程序,可实现对两个2位十进制数进行加、减、乘、除四则运算的计算工具。
计算器是最简单的计算工具,要想用汇编语言实现它就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及子程序的调用等汇编语言知识进行综合运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。
用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。
通过对各种指令的合理使用,设计各个功能模块,当实现各个程序模块后,通过DOS功能调用完成运算结果的输出显示,最终实现一个简单的计算器功能。
1.设计目的通过本次的课程设计,使自己加深对汇编语言的了解,应用《汇编语言》等所学相关知识及查阅资料,完成简易2位计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。
通过本次课程设计的训练,可以使我在基本思路和基本方法上对基于8086/8088CPU的汇编语言程序设计有一个比较感性的认识,并具备一定程度的设计能力,从而能够熟练掌握编写汇编语言源程序的基本方法和基本构架,学会编写顺序结构、分支结构、循环结构和子程序的汇编程序,掌握程序中数据的产生与输入输出的方法以及一些关于汇编语言更深层次方面有初步的认识。
2.1 系统总体分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。
由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。
本程序使用了DOS功能调用、子程序嵌套调用的方式实现了代码的较好的可读性,使程序看起来结构严谨。
2.2程序流程图本程序的流程图如图所示:开始输入计算公式将数据的ASCII码转换为对应的二进制数值将符号保存至AL中AL为‘+’?加运算AL为‘-’?减运算AL为‘*’?乘运算AL为‘/’?除运算将计算结果转换成对应的ASCII码输出计算结果继续?结束流程图3.1 主程序及子程序说明主程序:主要完成程序的主体框架结构,提供人机交互功能。
子程序:主要完成对数据的加工,处理和输出。
3.2 程序代码编写代码如下:STACK SEGMENT STACKDW 200 DUP(0)STACK ENDSDATA SEGMENTBUF DB 7DB 0DB 7 DUP(0)MSG DB 10,13,'$'MSS DB '......$'W1 DB 'Input error!',10,13,'Please to 01+02 form input:$'TS DB 'input[01+02=]:',10,13,'$'XS DB '-------2 digitsCalculator-------$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATAMOV DS,AXLEA DX,XSMOV AH,9INT 21HB1:LEA DX,MSGMOV AH,9INT 21HLEA DX,TSMOV AH,9INT 21HB2:MOV AH,10LEA DX,BUFINT 21HLEA DX,MSGMOV AH,9INT 21HMOV BH,BUF+2MOV BL,BUF+3 MOV CH,BUF+5 MOV CL,BUF+6 SUB BH,30H SUB BL,30H SUB CH,30H SUB CL,30H MOV DH,10MOV AH,0MOV AL,BHMUL DHMOV BH,0ADD BX,AXMOV AH,0MOV AL,CHMUL DHMOV CH,0ADD CX,AXMOV AL,BUF+4 CMP AL,'+' JZ L1CMP AL,'-' JZ L2CMP AL,'*' JZ L3CMP AL,'/' JZ L4LEA DX,W1MOV AH,9INT 21HJMP B2L1:ADD BX,CXCALL BDCJMP E1L2: CMP BX,CXJB Z21SUB BX,CXJMP Z22Z21:MOV AH,2MOV DL,'-' INT 21HSUB CX,BXMOV BX,CXZ22:CALL BDCJMP E1L3:MOV AH,0MOV AL,BLMUL CLMOV BX,AXCALL BDCJMP E1L4: MOV DX,0MOV AX,BXDIV CXMOV BX,AXCALL BDCCMP DX,0JZ E1LEA DX,MSS MOV AH,9INT 21HMOV BX,DXCALL BDCE1:JMP B1MOV AH,4CH INT 21HBDC PROCPUSH CXPUSH DXCMP BX,10000 JNB P1CMP BX,1000 JNB P2CMP BX,100 JNB P3CMP BX,10 JNB P4JMP P5P1:MOV CX,10000 CALL DISP P2:MOV CX,1000 CALL DISPP3:MOV CX,100 CALL DISPP4:MOV CX,10CALL DISPP5:MOV CX,1CALL DISP POP DXPOP CXRETBDC ENDPDISP PROC PUSH AXPUSH CXPUSH DXMOV AX,BX MOV DX,0DIV CXMOV BX,DX MOV DL,AL ADD DL,30H MOV AH,2INT 21H POP DXPOP CXPOP AXRETDISP ENDP CODE ENDSEND START4.程序调试4.1运行界面分析运行界面如图所示:在提示input[01+02=]:处按照格式输入运算公式,输入完成后敲击回车键,输入无误后在下一行显示运算结果。
4.2算法的分析本程序使用了子程序的嵌套调用的方法,这样做使得整个程序体看上去严谨,舒服。
整个程序中的BDC子程序,将二进制数转换为十进制数,嵌套调用DISP子程序输出十进制数。
通过这几个及程序的协助,使得这个系统可以正常的运行。
4.3 调试过程及分析编写完代码后分别通过MASM、LINK程序,依次完成编译、连接过程,然后运行生成的exe 文件,发现错误后在使用DEBUG工具调试程序寻找其中的算法错误。
5.心得体会5.1 设计体会本次课程设计我有不少收获:在编程之前我查阅了不少资料,加深的对汇编语言的认识;在往后的几周上机实践中,对汇编语言源程序的编辑、汇编、连接和调试的全过程更加熟练;在不断地求解过程中,了解到了汇编语言的一些特点,感觉到汇编语言的执行效率非常高,由于汇编是对底层的操作,这一点决定了它在代码的产量方面不如一些高级语言。
在这次课程设计中,无论是进行算法设计、代码编写,还是到具体的设计和调试,都需要对汇编知识熟练地掌握,还要有一种严谨的态度,这样才能少走许多弯路,节省大量时间。
本次课程设计的成功完成,我感谢我的指导老师侯老师,是她及时发现了我编写的程序中存在的一些问题,我才能顺利完成本次课程设计。
可以说,我的课程设计的顺利完成凝聚着老师的大量心血,在此向侯老师表示深深的感谢。
当然,我也要感谢我的同学,程序的编写与他们的合作是分不开的,还有那些互联网上的朋友,他们毫不吝啬的将自己所掌握的知识拿出来资源共享,才能使我的部分功能模块得以实现,谢谢他们。
5.2 系统改进本程序有一些问题:1)不能进行混合的四则运算。
2)能计算的数值范围有限。
3)不能进行有关小数的四则运算。
4)在进行除法运算时不能输出小数。
5)由于主程序代码过长,条件转移指令无法实现,本程序只能进行循环计算,没有实现退出功能。
在以后的时间里,我会改进一些问题,力争使该程序完美。
参考资料[1]李目海等编.《汇编语言》.山东大学出版社,2008.2[2]李敬兆等编.《汇编语言程序设计实验教程及习题解答》.中国科学技术大学出版社,2008.9[3]王爽等编.《汇编语言》.清华大学出版社,2003.5[4]曹加恒等编.《新一代汇编语言课程设计》.高等教育出版社,2003.6[5]杨路明等编.《汇编语言程序设计》.中南大学出版社,2005.8[6]詹仕华等编.《汇编语言程序设计》.中国电力出版社,2008.2[7]詹仕华等编.《汇编语言程序设计习题解答及课程设计、设计辅导》.中国电力出版社,2008.2[8]宋彩莉等编.《汇编语言程序设计学习指导》.西安交通大学出版社,2008.2。