《微型计算机原理及应用》课程设计-简易计算器的设计.doc
《《微型计算机原理及应用》课程设计-简易计算器的设计.doc》由会员分享,可在线阅读,更多相关《《微型计算机原理及应用》课程设计-简易计算器的设计.doc(19页珍藏版)》请在三一文库上搜索。
1、 微型计算机原理及应用微型计算机原理及应用课程设计课程设计 简易计算器的设计 姓名陈* 院系信息学院自动化系 班级* 学号200911* 时间2011 年 12 月 29 日 目 录 目目 录录 摘要 I INTRODUCTION.II 1课程设计目的与任务.1 1.1设计目的1 1.2设计任务1 2基本要求.1 3简易计算器的设计.2 3.1程序设计流程图2 3.2程序基本算法3 3.3程序源代码3 3.4程序调试8 4课程设计总结与心得.11 参考文献12 摘要 I 摘要 本次课程设计是通过使用 emu8086 汇编语言编程软件实现较复杂程序的设计。该 课程设计的内容为采用汇编语言设计一个
2、简易计算器,界面显示要求用键盘分别输入 两个随机数,完成加法,减法,乘法和除法的运算,然后将运算结果显示出来。该设 计只能运行简单正整数间的单步加减乘除运算,不能识别小数。除法中的结果可以精 确到 3 位小数,减法可以显示负数的结果。采用 DOS 调用(INT 21H)来完成输入和输 出,输出字符串操作。通过这次设计实践能够进一步加深对专业知识和理论知识学习 的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题 的能力得到全面提高。 关键词:微机原理;计算器;汇编 ABSTRACT II INTRODUCTION This course is designed to th
3、rough the use of emu8086 assembly language programming software to realize complex program design. The content of the course design for the assembly language design a simple calculator, interface display with the keyboard input requirements are two random number, complete the addition, subtraction,
4、multiplication, and division of the operation, and then will operation result shows it. This design can only easy operation between the positive integer single step add, subtract, multiply and divide operation, cant identify decimal. The result in the division accurate to 3 decimal places, subtracti
5、on can display the negative results. Using DOS call (INT 21 H) to complete the input and output, the output string operation. This design practice can further deepen the theoretical knowledge of professional knowledge and learning the understanding and the understanding, make oneself of the design l
6、evel of knowledge and the application ability and the ability to analyse and solve questions fully improve. KEYWORDS: Microcomputer principle;calculator;Assembly language 广东海洋大学微型计算机原理及原理课程设计 1 简易计算器的设计 自动化 1091,200911632102,陈焯坚 1课程设计目的与任务 1.1设计目的 为了使学生加深对所学的微机原理知识的理解,培养学生的专业素质,提高其利 用微机原理知识处理问题的能力,为
7、今后专业课程的学习、毕业设计和工作打下良好 的基础。使学生能比较扎实地掌握微机原理的基础知识和基本理论,掌握控制系统及 有关设备的分析、开发等基本技能,受到必要工程训练、初步的科学研究方法训练和 实践锻练,增强分析问题和解决问题的能力,了解微机原理和接口技术的新发展。 1.2设计任务 本次课程设计有四个任务可供选择,这里选择设计一个简易计算器,要求能正确完成 加、减、乘、除四则运算。 2基本要求 本次课程设计,1 人 1 题,可以相互讨论,但设计报告由学生独立完成,不得互 相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑 难问题和按设计进度进行阶段审查。学生必须发挥自
8、身学习的主动性和能动性,主动 思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。同学应积极主动 的提出问题、解决问题、讨论问题,互相帮助和启发。 学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须 和题目的要求相符合,保证设计的正确。指导教师要引导学生学会掌握和使用各种已 有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能 力都获得提高。学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给 定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边修改,软件设 计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效
9、率,保 证按时完成设计工作并交出合格的设计报告。 广东海洋大学微型计算机原理及原理课程设计 2 3简易计算器的设计 设计一个简易计算器过程包括:确定功能,画流程图,确定算法,编写程序,程 序调试。 设计工具:个人电脑,emu8086。设计语言:8086 汇编语言 3.1程序设计流程图 图 1 1/2? 输入单字符 开始 2:第一次输入字符串 09/E? 09 转换与暂存 第二次输入字符串 09/E? 09 转换与暂存 输入运算符 +-*/E? 相应运算 转换与输出 1:输入字符串 az? az 转换与输出 E 退出 都不是 都不是 都不是 都不是 N N N 广东海洋大学微型计算机原理及原理课
10、程设计 3 流程图介绍: 进入 DOS 界面,首先显示出计算器功能介绍和个人信息,然后界面输出操提示要 求用户输入 1 或者 2 选择功能,1 表示字母转换功能,2 表示计算功能。 字母转换功能,只能从小写向大写转换,当用户输入字母时,先判断是否为小写 字母,不是则重新进入功能选择界面,是就开始转换并且显示在界面大写。 计算功能,提示输入第一个数,先判断是否符合要求的数,符合的话再把输入的 数据先从十六进制的 ASCII 码转换成相应的十进制,再转换成有实际意义的十六进制 进制,将该十六进制数存入一个缓冲器单元,对于不符合要求的数就返回重新输入第 一个数据。输入完第一个数后,界面再要求操用户输
11、进第二个数,同样的方法判断再 进行转换数制,在存到缓冲期的下一个单元。这里转换的方法是采用“乘 10 加次位” 的方法。接下来界面再提示用户输入“+,-,*,/”其中一个运算符,然后程序进行 比较输入的运算符,然后跳到相应的代码段执行相应的运算,如果输入的字符不是运 算符就重新输入运算符。其中,减法运算中,首先比较被减数与减数的大小,如果减 数大于被减数则结果会是负数,所以,首先显示出“-”号,再将被减数与减数换位, 进行减法运算。当完成运算后,因为结果是十六进制的,所以要进行转换数制,采用 “除 10 取余倒排列”的方法,最后,就将结果逐位输出显示。 3.2程序基本算法 本次计算器计算功能的
12、设计,关键在于数制的转换。用户输入的是字符串,而在 以每个字符的十六进制的 ASCII 码存放,为了把字符串转换成有实际数学意思的十六 进制数,就要首先把 ASCII 码先转换成十进制,再把十进制数转成可以运算的十六进 制。例如输入 112,系统存放的是 31H、31H、32H,通过减去 30H,即可转成 1、1、2 存放,再把三个数 1、1、2“乘以 10 加次位”的方法:(1*10+1)*10+2=112 ,把 112 也就是 70H 这个结果放到寄存器里,即可转换成功。只有这样的数才可以利用汇 编指令进行正确运算。运算完之后采用“除 10 取余倒排序”的方法,把结果逐位转换, 再加上 3
13、0H,即可显示。 字母转换部分,实现小写向大写转换,只要把相应的 ASCII 码进行运算就可以,利用这个方 法可以实现大小写互换,这里只是简单尝试写出小写向大写转换。例如,a 转换成 A,a 的 ASCII 码是 41H,而 A 的是 61H,要实现 a 向 A 转换,61H 减去 20H 就可以了。要实现 A 向 a 转换, 对应 ASCII 码加上 20H 即可。 3.3程序源代码 ;- - ; *数据段* ;- - DATA SEGMENT ;-计算器功能信息字符串定义- - 广东海洋大学微型计算机原理及原理课程设计 2 STR1 DB 0AH,0DH,* *$ STR2 DB 0AH,
14、0DH, A Simple Calculator $ STR3 DB 0AH,0DH, function :$ STR4 DB 0AH,0DH, 1.Letter Conversion$ STR5 DB 0AH,0DH, 2.Four Operations$ STR6 DB 0AH,0DH,$ STR7 DB 0AH,0DH,0AH,0DH, Design by Cheukkin Chan$ STR8 DB 0AH,0DH,* *$ ;-提示字符串变量定义- STR13 DB 0DH,0AH,Please choose the function:$ ARRAY6 DW 2 DUP(0) ;保留
15、 2 个字空 间作暂存数据计算 RESULT1 DB 30 DUP(0),$ ;保留 30 个字 节存结果数 RESULT2 DB 30 DUP(0)$ ;-字母转换部分- STR9 DB 0DH,0AH,0DH,0AH,Letters Conversion $ STR10 DB 0DH,0AH,Please input the codes:$ STR11 DB 0DH,0AH,After conversion: $ ;-四则运算部分- BUFF DB 28 ;允许输入的最多字符数 DB 0 ;实际输入的字符数 DB 28 DUP(0) ;保存实际输入的字符 ARRAY1 DB 0DH,0AH
16、,0DH,0AH,Please enter a number: $;输入第一个数字符串说明 ARRAY2 DB 0DH,0AH,Please enter another number: $;输入第二个数字符串说明 ARRAY3 DB 0DH,0AH,The result is : $;输出结果字符串说明 ARRAY4 DB 0DH,0AH,The number is wrong,please input again : $;输入错误提示字符串说明 STRING DB 0DH,0AH,Please enter the operation(+,-,*,/) : $ ;运算字符串说明 ARRAY D
17、W 2 DUP(0) ;保留 2 个字 空间作暂存数据计算 RESULT DB 6 DUP(0),$ ;保留 6 个字节存 结果数 CRLF DB 0DH,0AH,$ ;显示结果时回 车,转行说明 YUSHU DW 4 DUP(0) DATA ENDS ;- - ; *代码段* ;- - CODE SEGMENT ASSUME CS:CODE,DS:DATA ;段寄存器 说明伪指令 START:MOV AX, DATA MOV DS,AX ;往 DS 段寄存 器送数据段基址 ;-输出计算器的功能相关信息(调用 9 号功能输 出字符串)- MOV DX,OFFSET STR1 MOV AH,9
18、INT 21H MOV DX,OFFSET STR2 MOV AH,9 INT 21H MOV DX,OFFSET STR3 MOV AH,9 INT 21H MOV DX,OFFSET STR4 MOV AH,9 INT 21H MOV DX,OFFSET STR5 MOV AH,9 INT 21H MOV DX,OFFSET STR6 MOV AH,9 INT 21H MOV DX,OFFSET STR7 MOV AH,9 INT 21H MOV DX,OFFSET STR8 MOV AH,9 INT 21H ;- MOV DX,OFFSET CRLF MOV AH,9 INT 21H ;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机原理及应用 微型计算机 原理 应用 课程设计 简易 计算器 设计
链接地址:https://www.31doc.com/p-3259512.html