汇编语言的简易计算机设计.

上传人:我** 文档编号:115352206 上传时间:2019-11-13 格式:DOC 页数:20 大小:206KB
返回 下载 相关 举报
汇编语言的简易计算机设计._第1页
第1页 / 共20页
汇编语言的简易计算机设计._第2页
第2页 / 共20页
汇编语言的简易计算机设计._第3页
第3页 / 共20页
汇编语言的简易计算机设计._第4页
第4页 / 共20页
汇编语言的简易计算机设计._第5页
第5页 / 共20页
点击查看更多>>
资源描述

《汇编语言的简易计算机设计.》由会员分享,可在线阅读,更多相关《汇编语言的简易计算机设计.(20页珍藏版)》请在金锄头文库上搜索。

1、摘 要汇编语言是为克服机器语言的缺点而引入的,是一种将机器语言指令符号化的编程语言,也称符号语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。虽然现在的汇编环境已经如此高级,即使全部用汇编语言来编写WINDOWS的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处还在于编写高效且需要对机器硬件精确控制的程序,而本次设计的简单计算器程序设计可以支持简单的四则运算。

2、关键词: 汇编语言 四则运算 简易计算器目 录1.系统需求分析11.1设计要求与目的11.2系统目标11.3功能分析22.系统概要设计32.1总体分析32.2系统框图32.2.1功能结构图32.2.2系统流程图33.程序说明53.1程序说明53.2主模块53.2.1主模块流程图53.2.2主模块程序代码63.3子模块93.3.1子模块流程图93.3.2子模块程序代码94.运行结果134.1运行软件emu8086简介134.2运行结果144.3算法分析164.4调试过程及分析165.心得体会176.参考文献181.系统需求分析1.1设计要求与目的(1)编写一个程序实现十进制加减乘除运算;(2)在

3、命令提示后输入算式,运算符号不超过四个;(3)回车后进行计算并以十进制显示结果;(4)程序采用汇编语言在PC机上完成;(5)写出系统需求分析、原理图和程序实现流程图;(6)对结果进行分析;(7)要求阅读相关参考文献不少于5篇;(8)根据课程设计有关规范,按时、独立完成课程设计说明书。 通过本次的课程设计,加深对汇编语言的了解,应用汇编语言程序设计等所学相关知识及查阅资料,完成简单计算器程序设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。具体来说,在基本思路和基本方法上对基于8086/8088和基于ARM核的汇编语言程序设计有一个比较感性的认识,并具备一定程度的设

4、计能力,从而能够熟练掌握编写汇编语言源程序的基本方法和基本构架,学会编写顺序结构、分支结构、循环结构和子程序的汇编程序,掌握程序中数据的产生与输入输出的方法以及一些关于汇编语言更深层次方面有初步的认识。1.2系统目标本次专业综合课程设计是要设计一个能实现简单加、减、乘、除四则运算的计算器,如十进制数的加减乘除四则运算。我们学习过两个具体数字进行加减法运算,但是对于用汇编语言实现的简单计算器,其难点在于这两个要做运算的数字是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数字进行运算,而且做的是加法运算、减法运算、乘法运算还是除法运算也是未知的,因此我们还要判断用户所

5、输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。1.3功能分析系统需求分析包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算;2、判断符号是否为运算符;3、回车为换行符;4、用十进制输出运算结果。2.系统概要设计2.1总体分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。由于在设计过程中考虑到了可能会多次计算数据,所以本次课程设计设计的简单计

6、算器可以一次运行,多次使用。本程序使用了函数和宏混用的方式实现了代码的较好的可读性,使程序看起来结构严谨。2.2系统框图2.2.1功能结构图本程序的功能结构图如图2-1:主程序计算显示清屏进制转换图2-1 功能结构图2.2.2系统流程图本程序的系统流程图如图2-2:开始结束将结果转化为十进制除数是否为0除乘减加选择运算符号检验是不是数输入数字2检验是不是数输入数字1初始化 是 是 否 是图2-2 系统流程图3.程序说明3.1程序说明本程序主要分为两个部分:主模块和子模块。主模块:主要完成程序的主体框架结构,提供人-程序的交互。子模块:主要完成对数据的加工,处理。3.2主模块3.2.1主模块流程

7、图首先提供一个主界面,提示用户按要求输入具体的数据和所要进行的操作,输入完毕后给出结果。如果输入过程中发现非法输入,则立即给与提示,程序自动刷新界面,提示继续输入。主模块流程图如图3-1:显示主界面,提示输入提示出错,返回显示结果接受输入判断输入合法性 否 是图3-1 主模块流程图3.2.2主模块程序代码程序代码如下: STACKS SEGMENT STACK DW 20 DUP(?) STACKS ENDS DATA SEGMENT NUM DW 0 TAB1 DB PLEASE INPUT A FORMULA:(ENTER Q TO EXIT),13,10,$ NUM1 DW 100 DU

8、P(?) NUM2 DW 10 DUP(?) ;存放除法产生的小数位 NUM4 DW 100 DUP(?) C0 DW 0 C1 DW 0 C2 DW 0 SUM1 DW 0 SUM2 DW 0 OLT DW 0 RESULT DW 0 TAB0 DW 10000,1000,100,10,1 ;定义输出时要用到的除数 WRONG DB 13,10,WRONG INPUT!$ ;OVER DB 13,10,NOT OPERATIONAL CHARACTER!$ DATA ENDS;-;-代码段- CODE SEGMENT ASSUME CS:CODE,DS:DATA;-主程序- START: M

9、OV AX,STACKS MOV SS,AX MOV AX,DATA MOV DS,AX CALL DISPMENU ; 显示汇编计算器菜单 STARTA: MOV BX,-1 MOV SI,0 MOV DI,30 MOV CX,0 MOV C0,0 MOV C1,0 MOV C2,0 ; 初始化各个变量 CALL INPUT CALL CALC CALL OUTPUT EXIT: MOV AH,4CH INT 21H;-计算器显示菜单子程序- DISPMENU PROC NEAR MOV DX,OFFSET TAB1 MOV AH,09H INT 21H RET DISPMENU ENDP;- ;输入字符及转换程序模块:输入并转换子程序,结果式存入NUM1- INPUT PROC NEAR STARTW: MOV AH,1 INT 21H MOV AH,0 CMP AL,Q ; Q 退出 JZ EXIT CMP AL,2AH ; * JZ MARK CMP AL,2FH ; / JZ MARK CMP AL,2BH ; + JZ MARK CMP AL,2DH ; - JZ MARK CMP AL,3DH ; = JE EQUAL CMP AL,C ;C 清屏 JE CLS SUB AL,30H CMP AL,0 ;非数字和运算符则报错 JL ERROR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号