文档库 最新最全的文档下载
当前位置:文档库 › 汇编简单整数的四则运算

汇编简单整数的四则运算

汇编简单整数的四则运算
汇编简单整数的四则运算

《汇编语言程序设计》

综合程序设计实验报告

题目:简单整数的四则运算

班级:信1101-1班

姓名:汪洋

段兴林

学号:20112837

20112872

完成日期:2013.11.25

一、项目简介

我们组的实验为多位数整数的简单加减乘除运算。在这里,只涉及两个数的运算。执行简单的加法,减法,乘法,与除法,当然在除法中只能求出整数的部分,且不显示余数。

二、小组成员具体分工

段兴林:主要负责数据的输入,即inputnumber部分,标题的输出显示。

汪洋:主要负责输入缓冲区的数据的计算,即jisuan以及ABC,def 的子程序的部分。标题的输出显示。

三、需求分析与设计

需求分析:主要的四项基本操作

1.加法

2.减法

3.乘法

4.除法

本项目以实现整数的基本四则运算为目的。因此在这里需要解决三个问题:1、数字的输入。2、数字的运算。3、数字的输出显示。

1、数字输入:

本输入方式以mov ah,0a int 21h.使用0a命令调用dos系统功能调用,将输入的数据以显示字符的方式,输入缓冲区。

2、数据的运算:

在这里,运算的前提是存储器中已经存放了真实的“数字”。但从缓

冲区输入的数据,只是一个一个紧连的字符,要将字符变成真实的“数字”,所以要将字符进行格式的转化。首先要定义好cx,便于进行loop 的循环。然后再循环中将最高位的数乘以10.举一个简单的例子。在缓冲区输入了123.但在存入存储单元时是三个字节单元放置了符号1,符号2,符号3.一次将最高位乘以10,即,1*10+2=12,12*10+3=123. 这样就将符号串123,变为了数字123.这样就可以再进行计算了。3、数据的输出:

在这里数据的输出,也要讲数字变为字符串的形式,否则是不能输出的。因此与数据的计算部分是相同的,也要将每一位都分隔开来。逐位的输出。

四、代码及分析

DATA SEGMENT

INFO0 DB 13,10,'*************************************************************$' INFO1 DB13,10,'* Welcome to using my caculater! *$'

INFO2 DB13,10,'* (Press any key to continues) *$'

INFO3 DB 13,10,'$'

BINFO0 DB13,10,'* 1.ADD *$'

BINFO1 DB13,10,'* 2.SUB *$'

BINFO2 DB13,10,'* 3.MUL *$'

BINFO3 DB13,10,'* 4.DIV *$'

BINFO4 DB13,10,'* 5.EXIT (or press any other key) *$'

CINFO0 DB13,10,'* 1.INPUT THE FIRST NUMBER *$'

CINFO1 DB13,10,'* 2.INPUT THE SECOND NUMBER *$'

BUFF DB 10 ;第一个字符放10

DB 0 ;第二个字符放0

DB 10 DUP(0)

ARRAY1 DB 13,10,'Please input the first number:$'

ARRAY2 DB 13,10,'Please input the second number:$';以上部分就是标题ARRAY DW 2 DUP(0)

RESULT DB 10 DUP(0),'$'

CRLF DB 0DH,0AH,'$'

FLAGS DB 0 ;flag中存放的是判断功能选择的字符

DATA ENDS

;------------数据段结束----------------------------

;------------代码段--------------------------------

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

;--------------------程序的主线----------------------

AB: CALL MAINMENU ;主菜单的子程序main menu

MOV AH,7 ;键盘输入,无回显

INT 21H

CMP AL,13 ;是否是回车

JZ EEXIT

CALL TWOMENU ;调用二级子菜单

MOV FLAGS,0FFH

;---------------------输入选择功能部分

MOV AH,7

INT 21H

CMP AL,31H ;比较输入的与1-5之间的数

JB EEXIT

CMP AL,34H

JA EEXIT

MOV FLAGS,AL

MOV ARRAY,0FFH ;array是字类型的,将其中的两个空间中放置了最大的数

MOV ARRAY[2],0FFH;

ADS: CALL THMENU ;调用三级菜单

MOV AH,7

INT 21H

CMP AL,'1';是1的话,输入第一个数

JZ A1

CMP AL,'2';是2的话,输入第二个数

JZ A2

JMP EEXIT ;否则结束

A1: MOV DX,OFFSET ARRAY1

CALL INPUTNUMBER ;BUFF中存放数据(以字节为单位) CMP CX,0 ;al里存放着真正输入字符的数字

JZ EEXIT

MOV WORD PTR ARRAY[0],AX ;将数字放入array中

CALL JISHUAN ;计算

JC AB

JMP ADS

A2: MOV DX,OFFSET ARRAY2

CALL INPUTNUMBER

CMP CX,0

JZ EEXIT

MOV WORD PTR ARRAY[2],AX

CALL JISHUAN

JC AB

JMP ADS

;--------------------程序的主线结束---------------------

;--------------将缓冲区中的数转换为十进制数-------------

ABC PROC near

MOV CH,0 ;将cx的高位清零

mov BX,0

MOV CL,BUFF[BX+1] ;将BUFF中的第二个数给低位

CMP CX,0 ;此时cx是10,字的形式

JZ ABCD

PUSH CX ;不是0,10进栈

ADD BX,2 ;此时bx为2

PUSH BX ;进栈:10--2(栈顶)

L0: SUB BUFF[BX],30H ;将BUFF中的全部转换为数字

INC BX

LOOP L0

;---------------

POP BX ;将栈顶2给bx

MOV AX,0

MOV CH,0

MOV CL,BUFF[BX-1] ;BUFF[1]给cl

L1: MOV DL,10

MUL DL ;al*dl

ADD AL,BYTE PTR BUFF[BX]

INC BX

LOOP L1

POP CX ;10出栈,给了cx

ABCD: RET ;是零结束

ABC ENDP

;---------十进制数转换结束-----------------------------

;--------------输出结果--------------------------------

DEF PROC

mov SI,0

ADD SI,4

MOV RESULT[SI+1],"$";将RESULT[5]='$'

MOV CX,5

AG1: MOV DX,0

MOV BX,10

DIV BX ;(dx,ax)/bx

PUSH DX ;将余数dx压入栈

ADD DL,30H ;低位加48,显示成数字的符号

MOV RESULT[SI],DL ;RESULT[4]=第一位数字

DEC SI ;si-1

POP DX ;将余数弹栈给dx

LOOP AG1

MOV CX,4

AG3: INC SI ;将高位时0的滤掉

MOV AL,RESULT[SI]

CMP AL,30H

JNZ NOZEARO

LOOP AG3

INC SI

NOZEARO:

CALL DISPCRLF

lea DX,RESULT[SI]

MOV AH,9

INT 21H

RET

DEF ENDP

;-----------------输出结果结束----------------------

;-----------------输出换行--------------------------

DISPCRLF PROC near ;换行子程序

MOV DX,OFFSET INFO3

mov ah,9

int 21h

ret

DISPCRLF endp

DISPINFO proc near ;输出标题的子程序

MOV AH,9

INT 21H

RET

DISPINFO ENDP

;--------------输出换行结束----------------

;-----------------输入数据-----------------

INPUTNUMBER PROC near

MOV AH,9

INT 21H

MOV DX,OFFSET BUFF ;将缓冲区的数据输入BUFF

MOV AH,0AH

INT 21H

CALL ABC ;紧接着调用abc

RET

INPUTNUMBER ENDP

;------------------输入数据结束---------

;------------------计算-----------------

JISHUAN PROC

CMP ARRAY[0],0FFH ;比较是否溢出

JZ NNN

CMP ARRAY[2],0FFH

JZ NNN

CMP FLAGS,31H

JZ ISADD

CMP FLAGS,32H

JZ ISSUB

CMP FLAGS,33H

JZ ISMUL

JMP ISDIV

NNN: CLC;进位位置0

RET

ISADD:MOV BX,WORD PTR ARRAY[0]

MOV AX,WORD PTR ARRAY[2]

ADD AX,BX

JMP DISP

ISSUB: MOV AX,WORD PTR ARRAY[0]

MOV BX,WORD PTR ARRAY[2]

CMP AX,BX

JB SMALL

SUB AX,BX

JMP DISP

SMALL:SUB BX,AX

MOV AX,BX

JMP DISP

ISMUL:MOV AX,WORD PTR ARRAY[0] MOV BX,WORD PTR ARRAY[2]

MUL BX

MOV DX,0

JMP DISP

ISDIV:MOV AX,WORD PTR ARRAY[0] MOV BX,WORD PTR ARRAY[2]

MOV DX,0

DIV BX

MOV DX,0

DISP: CALL DEF

STC;进位位置1

RET

JISHUAN ENDP

;------------计算结束----------------

;---------------------菜单部分---------- MAINMENU PROC near ;主菜单

MOV DX,OFFSET INFO0

CALL DISPINFO

mov dx,offset INFO1

call DISPINFO

mov dx,offset INFO2

call DISPINFO

MOV DX,OFFSET INFO0

CALL DISPINFO

RET

MAINMENU ENDP

TWOMENU PROC near ;二级菜单CALL DISPCRLF

MOV DX,OFFSET INFO0

CALL DISPINFO

;CALL DISPCRLF

MOV DX,OFFSET BINFO0

CALL DISPINFO

MOV DX,OFFSET BINFO1

CALL DISPINFO

MOV DX,OFFSET BINFO2

CALL DISPINFO

MOV DX,OFFSET BINFO3

CALL DISPINFO

MOV DX,OFFSET BINFO4

CALL DISPINFO

;CALL DISPCRLF

MOV DX,OFFSET INFO0

CALL DISPINFO

RET

TWOMENU ENDP

THMENU PROC near

CALL DISPCRLF

CALL DISPCRLF

MOV DX,OFFSET INFO0

CALL DISPINFO

;CALL DISPCRLF

MOV DX,OFFSET CINFO0

CALL DISPINFO

MOV DX,OFFSET CINFO1

CALL DISPINFO

;CALL DISPCRLF

MOV DX,OFFSET INFO0

CALL DISPINFO

RET

THMENU ENDP

;-------------------------------------

EEXIT:MOV AH,4CH ;程序结束标号

INT 21H

CODE ENDS

END START

核心代码:

计算部分,以及数据的转换的部分。

五.

总结本次的实验项目是在全组成员努力合作的前提下完成的。每一位组员都为这次的实验花费不少时间。其实,本实验的计算功能很单一,且并不适用。只能作为一个实例,作为汇编语言的练习。但,在实验中各位组员还是学会了多为数的简单乘除四则运算。尤其是在核心部分的将字符串转化为数字(简单意思成为字符串)。

四则运算实验报告

实验3四则运算表达式求值 背景 在工资管理软件中,不可避免的要用到公式的定义及求值等问题。对于数学表达式的计算,虽然可以直接对表达式进行扫描并按照优先级逐步计算,但也可以将中缀表达式转换为逆波兰表达式,这样更容易处理。 问题描述 四则运算表达式求值,将四则运算表达式用中缀表达式,然后转换为后缀表达式,并计算结果。 基本要求 使用二叉树来实现。 实现提示 利用二叉树后序遍历来实现表达式的转换,同时可以使用实验2的结果来求解后缀表达式的值。 输入输出格式: 输入:在字符界面上输入一个中缀表达式,回车表示结束。 输出:如果该中缀表达式正确,那么在字符界面上输出其后缀表达式,其中后缀表达式中两相邻操作数之间利用空格隔开;如果不正确,在字符界面上输出表达式错误提示。 选作内容 (1)在输入输出方式上要求使用: 输入:将中缀表达式存于文本文件中,程序从该文本文件中读出表达式。 输出:如果该中缀表达式正确,则将后缀表达式输出到该文件中原表达式的后面,它们之间用“---”后相连;如果不正确,请在输出表达式错误提示到该文件原表达式的后面,它们之间用“---”相连。 (2) 利用堆栈来实现中缀表达式转换为后缀表达式。 测试用例 输入:21+23*(12-6) 输出:21 23 12 6 -*+ 程序代码:

#include #include using namespace std; #define SIZE 100 #define STACKINCREMENT 10 template //栈 class stack{ public: void InitStack() { S.base = (T *)malloc(SIZE * sizeof(T)); if(!S.base) exit(0); S.top = S.base; S.stacksize = SIZE; } void DestroyStack(){ free(S.base); } void ClearStack(){ S.top = S.base; } bool StackEmpty(){ if(S.top == S.base) return true; else return false; } int StackLength(){ return (S.top - S.base); } bool GetTop(T &t){ if(S.top != S.base){ t = *(S.top - 1); return true;} else return false; } void Push(T t){ if(S.top - S.base >= S.stacksize){ S.base = (T *)realloc(S.base,(S.stacksize + STACKINCREMENT) * sizeof(T)); if(!S.base) exit(0); S.top = S.base + S.stacksize; S.stacksize += STACKINCREMENT; } *S.top = t; S.top++ ;

小学数学思维导图精编版

过这样整理,关于小学数学,我对教学内容、课程结构、编排顺序等有了清晰地了解。并有了几点看法: 1、20以内的加减法是基础,一旦20以内加减掌握了,多位数进退位加减、小数加减、乘、除、四则运算规律可以一气呵成,教会孩子。而不是象大纲这样拖沓,小数的加减要拖到四年级下册才教。 我的女儿刚刚上小学一年级,按照我的方法,她已经能做小数的竖式加减了,而我并没有花太多的时间教。 2、统计:分布在不同的学期,过来过去教,当然了,有所不同,感觉太拖沓。个人觉得柱状图、饼状图、折线图等可以一次教,并教孩子如何用EXCEL制作。计算机是工具,让孩子从小就学习运用它,而不是将计算机当成游戏机。 关键是让孩子理解统计的意义:统计是将死数据变成活数据的途径,让数据说话的方式。 3、分数、最小公倍数、最大公约数是小学的难点,也是重点。以后的因式分解、集合、加减转化为乘除,这都是基础。 4、图形变换、面积、体积可以对比学习、集中学习。 5、方程、代数直到五年级才开始接触,感觉有点晚。在小学四年级的时候有不少题目,如果用方程会很简单,可是孩子没有学,变得很难做。 我常和一年级的女儿玩一种扑克牌游戏,我就尝试用大小王代替任何数,渐渐让她领悟"王”可以代替任何数,就像我们代数和方程中的"X"。而她已经娴熟运用了。 6、做好应用题的关键是将文字信息用数学语言表达出来:画图、列式子、列方程 7、个人觉得小数数学课本的亮点是"“数学广角”,它让数学与生活紧密相连,让数学变得亲切可人。 经过上述剖析,我想到一些很有趣的游戏。通过轻松快乐的方式,就可以让孩子在比较短的时间内轻松玩转小学数学。当学校课堂学习时,孩子会感到轻松很多。

简单的四则运算计算器程序

简单的四则运算计算器程序

注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

附件:程序源代码 // sizheyunsuan.cpp : Defines the entry point for the console application. #include #include const int MAX=100; class Operand{ private: double operS; public: Operand(){} Operand(double opers){ operS=opers; } void set(double opers){ operS=opers; } double get() { return operS;} }; class Operator{ private: char operF; int priority; public: Operator(){} Operator(char operf) { operF=operf; switch(operf) { case'(':priority=-1;break; case'+':priority=0;break; case'-':priority=0;break; case'*':priority=1;break; case'/':priority=1;break; case')':priority=2;break; } } void set(char operf){ operF=operf; } char get(){ return operF;} int getpriority(){ return priority; } };

四则运算计算器

基于单片机实现的四则运算计算器 姓名 学号: 班级: 专业名称:测控技术与仪器 指导教师: 东北大学 2016年1月

课程设计(论文)任务书课程设计(论文)题目:基于单片机实现的四则运算计算器 基本内容和设计要求: 1、主机的矩阵键盘输入数和运算符号,从机显示运算结果。 2、主从单片机串行通信系统,并在LCD上显示运算内容及结果。 3、计算结果超过十位数字则显示错误。 4、运算除法时,结果只取整数,不是四舍五入。 5、有清零功能。

目录 课程设计(论文)任务书................................................................................................ i i 摘要 (1) 第1章绪论 (2) 1.1计算器简介 (2) 1.2设计主要内容 (2) 第2章系统硬件设计 (4) 2.1硬件组成 (4) 2.2输入模块 (4) 2.3输出模块 (5) 2.4运算模块 (5) 第3章系统软件设计 (7) 3.1 主程序 (7) 3.1.1主程序框图及初始化 (7) 3.1.2LCD程序框图及初始化 (8) 3.1.3键盘程序框图及初始化 (9) 3.1.4运算程序框图 (10) 第4章调试测试与实验分析 (11) 4.1 计算器调试 (11) 参考文献 (12) 心得体会 (13) 附录硬件原理图及PCB图 (14) 附录程序清单 (15) 附录实物照片 (28)

摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于89C52RC单片机来进行的四则运算计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除的基本四则运算,并在LCD1602液晶显示屏上显示相应的结果。本电路采用89C52RC单片机为主要控制电路,利用4*4矩阵键盘作为计算器以及运算符的输入。显示采用字符LCD静态显示。软件用C语言编程,并用开发板进行演示。 关键词:计算器,89C52RC单片机,LCD,矩阵键盘

汇编语言四则运算

《微机原理与接口技术》 课程设计 电气与自动化工程系 通信工程 2010-12-28 院 系:专 业: 年级班级: 学 号: 姓 名: 指导教师:设计日期:

一、课程设计目的 每个同学在1-2周时间内,用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的程序的目的。 二、课程设计要求 从键盘上输入数字参与运算,并在屏幕上显示结果,至少实现加法减法运算。 三、课题分析 该程序设计的关键是要根据四则运算中()、*、/、+、-、= 的优先级设置符号的权值,其中(、*、/、+、-、)、= 的权值分别设置为5、4、4、3、3、1、0 ,然后根据权值的大小进行运算。程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。程序不断判断输入的符号是否是左括号‘(’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘(’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。需要注意的是程序执行完括号内表达式的运算及乘除运算后将在存储区MARK中覆盖符号(、)、*、/ 及紧跟着的权值,使得程序在运算整个四则运算表达式时当括号内表达式的运算及乘除运算结束后存储区MARK中只有‘ +、-’运算符及紧跟着的权值,然后按照+、- 运算符的左右顺序从左到右进行‘ +、- ’运算,当最后遇到等号‘ = ’时输出表达式的数值,然后再根据提示判断是否继续执行下一个四则运算表达式。

第6章 四则运算计算器

第6章四则运算计算器 本章介绍的项目是大家十分熟悉的计算器,通过该项目的实践,我们将学习状态图的一些基本知识、C# 中方法的概念和应用以及键盘事件的运用,同时,训练编写一个略微复杂的Windows应用程序的设计思路。 为了使读者能够循序渐进地学习此类项目的设计,我们根据难度的不同,分为三个项目分别实现,首先完成项目一:整数的四则运算计算器,然后在此基础上完善,实现项目二:实数四则运算计算器,最后添加记忆功能,完成项目三:带记功能的实数四则运算计算器。 6.1 项目一:整数四则运算计算器设计 6.1.1 工作目标 终极目标:完成一个整数四则运算的计算器,界面如图6.1所示: 图6.1 整数四则运算计算器

促成目标: 1.完成整数四则运算计算器整体设计——状态机分析; 2.完成整数四则运算模块设计——流程分析; 3.完成整数四则运算计算器的程序界面设计及属性设置; 4.完成整数四则运算器的程序编码; 5.对整数四则运算计算器进行必要的运行测试,如有错误进行调试修改。 6.1.2 工作任务 工作任务一:构建计算器的状态图; 工作任务二:设计程序模块的流程图; 工作任务三:设计界面完成窗体及控件的属性设置; 工作任务四:编写程序代码; 工作任务五:测试软件,对错误进行调试修改。 6.1.3 工作任务一:构建计算器的状态图 1、知识准备——状态图 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。状态机由状态组成,各状态由转移链接在一起。状态是对象执行某项活动或等待某个事件时的条件。转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或评估并导致特定的结束状态。图6.2描绘了状态机的各种元素。

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录错误!未定义书签。 1 概述错误!未定义书签。 设计目的错误!未定义书签。 设计内容错误!未定义书签。 2 系统需求分析错误!未定义书签。 系统目标错误!未定义书签。 主体功能错误!未定义书签。 开发环境错误!未定义书签。 3 系统概要设计错误!未定义书签。 系统的功能模块划分错误!未定义书签。系统流程图错误!未定义书签。 4系统详细设计错误!未定义书签。 5 测试错误!未定义书签。 测试方案错误!未定义书签。 测试结果错误!未定义书签。 6 小结错误!未定义书签。 参考文献错误!未定义书签。 附录错误!未定义书签。 附录源程序清单错误!未定义书签。

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 开发环境 集成环境 3 系统概要设计 系统的功能模块划分 本题目实现的模块图如图3-1所示

汇编语言课程设计报告实现加减乘除四则运算的计算器

实现加减乘除四则运算的计算器 目录 1 概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (2) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (4) 5 测试 (5) 5.1 正确输出 (5) 5.2 实际输出 (6) 6 小结 (7) 参考文献 (8) 附录 (9) 附录1 源程序清单 (9)

汇编语言课程设计报告(2011) 实现加减乘除四则运算计算器的设计 1 概述 1.1 课程设计目的 运用汇编语言,实现简单计算器的一般功能.通过该程序设计,让我们熟悉并掌握DOS系统功能调方法用及BIOS系统功能调用方法,同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程,以及掌握DEBUG的一系列的功能执行命令,及用它进行调试,运行功能。 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。由于汇编语言如此的接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。由此可见汇编语言的重要性,学好这门课程,同样可为相关的专业打下基础。 汇编语言程序设计课程设计是在教学实践基础上进行的一次试验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计和制造出具有具有一定功能的应用系统,并且在实验的基本技能方面进行了一次全面的训练。 此外,它还可以培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够较全面的巩固和应用课堂上所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。它同样可以提高学生运用理论去处理实际问题的能力和独立思考的能力,使学生的编程思想和编程能力有所提高,最终达到熟练地掌握编写汇编源程序的基本方法的目的。 1.2 课程设计内容 设计一个能实现加减乘除取余计算的程序。将键盘输入的表达式预放入一缓冲区中,然后从该缓冲区的第一个字符开始读取判断,当读到一个有效的表达式时对表达式进行相应的运算后,输出用十六进制数表示的运算结果。 2 系统需求分析 2.1 系统目标 1.熟悉汇编指令、宏汇编语言的编程方法 2. BIOS中断调用、系统功能中断调用方法 3.磁盘文件、及文件内容操作 目标:要求该程序接受从键盘输入的十六进制数,执行相应的计算后,计算结 1

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录 (1) 1概述 0 设计目的 0 设计内容 0 2系统需求分析 0 系统目标 0 主体功能 (1) 开发环境 (1) 3 系统概要设计 (1) 系统的功能模块划分 (1) 系统流程图 (2) 4系统详细设计 (3) 5测试 (4) 测试方案 (4) 测试结果 (4) 6小结 (4) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。

汇编课程设计(有符号多位十进制数的四则运算计算器)

汇编语言课程设计实验报告 一、课程设计目的 《汇编语言程序设计》是计算机专业一门重要的核心课程,也是一门实践性很强的课程,而课程设计则是其中一个重要的应用实践环节。 本次课程设计的目的是提高分析问题、解决问题的能力以及实际动手能力,进一步加深对汇编语言程序设计基本理论的理解,熟练掌握汇编语言程序上机调试的方法技巧、结构化程序设计技术及高级汇编语言技术,能编写较复杂的应用程序,为学习后继课程打下扎实的基础 二、实验环境 编译机器:IBM兼容PC 操作系统:Windows XP -SP2 中文版 编译工具:MASM 5.0 三、课程设计内容 1、编写一个有符号多位十进制数的四则运算计算器程序,所输入的算式如下例所示: -278+32= -132――12= 11*-32= -1234/-18= 要求程序能接收键入的算式,在接收到‘=’号时,计算并以有符号十进制数的形式显示结果,然后允许用户继续键入算式。如果键入算式后再键入‘.’,则显示结果并结束整个程序。(‘/’为整除) 程序设计框图: 程序源代码:

2、已知一个由英语单词组成的字符串已按字典序排好,每个单词以空格符为结束,该串的首二字节为16位无符号二进制数,用以说明串的长度。试编程能从键盘上输入单词(以空格字符为结束),若字符串中没有该单词,则将该单词插入该串适当的位置,使其仍保持字典序,并修改串长度,显示单词在串中位置及串长度;若字符串中有该单词,则显示字符串中所有包含该单词的单词,及其在字符串中的位置。

程序设计框图: 程序代码: DATA SEGMENT ; DICTIONARY 字典字符串,首两个字节为 16 位无符号二进制数,说明字符串长度。 DICTIONARY DB 00,16H,"add an book dad egg " DB 100H DUP(20H) ; 空的缓冲区。 MSG_INTRO DB "Input the Word to Search : ","$" MSG_NOTFOUND DB "Not Found, Now Insert it . ",0AH,0DH,"$" MSG_NEWDICT DB 0AH,0DH,"New Dictionary : ","$" MSG_FOUND DB 0AH,0DH,"Found Word in Dictionary : ","$" MSG_POSITION DB 0AH,0DH,"Position : ","$" MSG_DICTLENGTH D B 0AH,0DH,"New Dictionary Length : ","$" MSG_NEWLINE DB 0AH,0DH,"$" BUFFER DB 10H DUP(20H) ; BUFFER 用于保存需要查询的单词。 WORD_LENGTH DB 0H CHAR_SPACE EQU 20H ;默认的单词间隔为空格。 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA start: MOV AX,DATA MOV DS,AX LEA BX,BUFFER;把buffer有效地址送BX MOV DX,OFFSET MSG_INTRO ;把偏移地址送DX通用寄存器 MOV AH,09H ;调用9号中断,输出MSG_INTRO INT 21H GET_WORD: ; 获取用户输入的需要查找的单词字符串。 MOV AH,01H INT 21H CMP AL,0DH ; 输入以回车结束。 JE INPUT_FINISH ;如果是回车,跳转输入结束 MOV [BX],AL INC BX ;BX加1,下一步修改字符长度

最新北师大版七年级数学上册第四单元基本平面图形知识点

第四章:基本平面图形 知识梳理 一、线段、射线、直线 1、线段、射线、直线的定义 (1)线段:线段可以近似地看成是一条有两个端点的崩直了的线。线段可以量出长度。 (2)射线:将线段向一个方向无限延伸就形成了射线,射线有一个端点。射线无法量出长度。 (3)直线:将线段向两个方向无限延伸就形成了直线,直线没有端点。直线无法量出长度。 : 联系:射线是直线的一部分。线段是射线的一部分,也是直线的一部分。 2、点和直线的位置关系有两种: ①点在直线上,或者说直线经过这个点。 ②点在直线外,或者说直线不经过这个点。 3、直线的性质 (1)直线公理:经过两个点有且只有一条直线。简称两点确定一条直线。 (2)过一点的直线有无数条。 (3)直线是是向两方面无限延伸的,无端点,不可度量,不能比较大小。 (4)直线上有无穷多个点。 (5)两条不同的直线至多有一个公共点。 4、线段的比较 (1)叠合比较法(用圆规截取线段);(2)度量比较法(用刻度尺度量)。 5、线段的性质 (1)线段公理:两点之间的所有连线中,线段最短。 (2)两点之间的距离:两点之间线段的长度,叫做这两点之间的距离。 (3)线段的中点到两端点的距离相等。 (4)线段的大小关系和它们的长度的大小关系是一致的。 6、线段的中点:如果线段上有一点,把线段分成相等的两条线段,这个点叫这条线段的中点。 若C 是线段AB 的中点,则:AC=BC= 2 1 AB 或AB=2AC=2BC 。 二、角 1、角的概念: (1)角可以看成是由两条有共同端点的射线组成的图形。两条射线叫角的边,共同的端点叫角的顶点。 (2)角还可以看成是一条射线绕着它的端点旋转所成的图形。 2、角的表示方法: 角用“∠”符号表示,角的表示方法有以下四种: ①用数字表示单独的角,如∠1,∠2,∠3等。 ②用小写的希腊字母表示单独的一个角,如∠α,∠β,∠γ,∠θ等。 ③用一个大写英文字母表示一个独立(在一个顶点处只有一个角)的角,如∠B ,∠C 等。 C

四则运算计算器

前言 本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用。本次课程设计以实现一个基本功能完善,界面友好,操作简便易行的计算器为最终目的。通过对具有加减乘除基本功能的计算器的设计实现,学会使用汇编语言实现输入输出模块的设计,模块合理调用的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,熟悉并加深对各种指令的用法。学会使用汇编语言设计各个功能模块。当实现各个程序模块后,学会通过程序的调用最终实现一个具有基本计算功能的简单计算器。 1

中文摘要 实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 设计当用户根据提示信息输入一个算式后,按下enter键或是‘=’符号键时,程序依据输入的算式进行计算,并将结果显示在屏幕上。如果用户输入错误,则返回,提示信息让用户重新输入算式,当用户按下Q或q键时退出程序。在各个子功能模块设计好的情况下,通过主题模块的合理调用,最终实现一个具有简单运算功能的计算 关键字:计算器、四则运算、进位、错位、清屏

目录 1系统分析 -------------------------------------------------2系统总体设计----------------------------------------------3详细设计-------------------------------------------------- 4统测试 ---------------------------------------------------5软件使用说明书 ------------------------------------------- 设计总结----------------------------------------------------参考文献----------------------------------------------------致谢——————————————————————————————————— 3

汇编实验之四则运算

计算机原理实验室实验报告 课程名称: 姓名学号班级成绩 设备名称及软件环境 实验名称四则运算实验日期 一.实验内容 从键盘输入一个十进制两位数的四则运算表达式, 如23*56-(8*19)/6+67-8=,编程计算表达式的值, 输出十进制结果(有可能是三位或四位十进制),+-*/位置任意。 并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止。二.理论分析或算法分析 根据题目的要求,可以把整个源程序大致划分为几个基本结构: 程序加法、减法、乘法、除法、显示结果五个部分。 首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n执行继续计算和退出操作 三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等) 主程序流程:

代码 : 根据题目的要求,可以把整个源程序大致划分为几个基本结构,程序加法、减法、乘法、除法、显示结果五个部分 源程序: CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS NEXTLINE MACRO ;显示换行宏 MOV AH,2 MOV DL,10 开始 从键盘输入字符 AL=‘+’ AL=‘-’ AL=‘*’ AL=‘=’ AL=‘/’ 输出结果 结束 从键盘输入加数并执行加运算 从键盘输入加数并执行减运算 从键盘输入加数并执行乘运算 从键盘输入加数并执行除运算 Y Y Y Y Y N N N N

简单WINDOWS小程序设计——四则运算计算器

实验一:简单WINDOWS小程序——四则运算计算器 题目基本要求:创建一个Windows程序,在文本框中输入两个整数,按“计算”按钮后输出这两个整数的和、差、积、商。程序运行范例参见所提供的范例。 程序设计的具体要求如下: (1)用户在两个文本框中输入2个整数后单击“计算”按钮,可在标签框中显示计算结果。 (2)要求计算结果标签框中的内容分行显示 (3)当除数输入为0以及输入的是非数值时,观察程序的运行状态,为什么? 程序提示: (1)每个一在窗体中的控件都应该是一个对象,其中name属性为该控件在程序中的名字。(不能使用汉字) (2)文本框控件为:Textbox,其中text属性即为用户输入的文本,其类型为字符串类型(3)字符串String 为系统已经定义的一个类,其中有很多可以直接使用的方法,如:字符串连接、字符串复制等等。 (4)通过文本框输入的数据类型是字符串,并不能直接用于数值计算,同理,计算之后的结果也不能直接显示在文本框或者标签中,需要转换! 相关代码和使用到的方法如下: int.Parse(txtNumber1.Text) //将字符串txtNumber1.Text转换为相应的整数,不考虑字符串输入错误,不能转换为整数的情况。 int x = 5; txtNumber1.Text =x.ToString(); //将整数转换成字符串并赋值给文本框的text属性。 (5)和C语言一样,在C#/C++中,整数和整数相除仍然得整数。 (6)要分行显示,可以使用回车,但它是转义字符,为\n,比如: string s1=”abc”+”\n”+”efg”,可以实现字母的分行显示 (7)所谓文本框清空,也就是文本框的text属性值为空串。也可以使用clear()事件 (8)在Windows窗体程序中,经常使用label控件(标签)完成显示和输出,属性text 用于显示,类型为字符串。 (9)C#中,类的全部属性和方法定义都是放在类中的。不允许类外定义方法。 思考: (1)什么是对象,什么是类,有什么关系,在上述程序中,哪些是类,哪些是对象。 (2)对象和对象之间是如何区分的。 (3)什么是属性,什么是方法,在上述代码中,哪些是属性,哪些是方法,在控件的使用过程中,对象和属性能否改变 (4)你认为面向对象的程序设计的关键应该在哪里?使用系统或者第三方软件公司已经定义好的类有什么好处,又有什么坏处? 需要在网络辅助教学平台上提交的作业: 简要回答上述四道思考题!

七年级数学上册第四章基本平面图形

第四章基本平面图形 第一节线段、射线和直线 【学习目标】 1.使学生在了解直线概念的基础上,理解射线和线段的概念,并能理解它们的区别与联系. 2.通过直线、射线、线段概念的教学,培养几何想象能力和观察能力,用运动的观点看待几何图形.3.培养对几何图形的兴趣,提高学习几何的积极性. 【学习重难点】重点:直线、射线、线段的概念. 难点:对直线的“无限延伸”性的理解. 【学习方法】小组合作学习 【学习过程】 模块一预习反馈 一、学习准备 1.请同学们阅读教材,并完成随堂练习和习题 2.(1)绷紧的琴弦、人行横道线都可以近似地看做。线段有端点。 (2)将线段向一个方向无限延长就形成了。射线有端点。 (3)将线段向两个方向无限延长就形成了。直线端点。 3.线段射线和直线的比较 概念图形表示方法向几个方向延伸端点数可否度量 线段 射线 直线 4.点与直线的位置关系 点在直线上,即直线点;点在直线外,即直线点。 5.经过一点可以画条直线;经过两点有且只有条直线,即确定一条直线。 二、教材精读 6.探究:(1)经过一个已知点A画直线,可以画多少条? 解: (2)经过两个已知点A、B画直线,可以画多少条? 解: (3)如果你想将一根细木条固定在墙上,至少需要几枚钉子? 解: 归纳:经过两点有且(“有”表示“存在性”,“只有”表示“唯一性”) 实践练习:如图,已知点A、B、C是直线m上的三点,请回答 A B C m (1)射线AB与射线AC是同一条射线吗? (2)射线BA与射线BC是同一条射线吗? (3)射线AB与射线BA是同一条射线吗? (4)图中共有几条直线?几条射线?几条线段? 分析:线段有两个端点;射线有一个端点,向一方无限延伸;直线没有端点,向两方无限延伸 解: 三、教材拓展 7.已知平面内有A,B,C,D四点,过其中的两点画一条直线,一共能画几条? 分析:因题中没有说明A,B,C,D四点是否有三点或四点在同一直线上,所以应分为三种情况讨论 解: 实践练习:如图,图中有多少条线段?

思维导图玩转小学数学分析

玩转小学数学 女儿开始上小学了,为了女儿,我特地花了一些时间,将小学数学课程研究了一遍,并用我最最喜欢的思维导图转化的,清晰度有限,只能看个大概。 经过这样整理,关于小学数学,我对教学内容、课程结构、编排顺序等有了清晰地了解。并有了几点看法 1、20以内的加减法是基础,一旦20以内加减掌握了,多位数进退位加减、小数加减、乘、除、四则运算规律可是象大纲这样拖沓,小数的加减要拖到四年级下册才教。 我的女儿刚刚上小学一年级,按照我的方法,她已经能做小数的竖式加减了,而我并没有花太多的时间教 2、统计:分布在不同的学期,过来过去教,当然了,有所不同,感觉太拖沓。个人觉得柱状图、饼状图、折线何用制作。计算机是工具,让孩子从小就学习运用它,而不是将计算机当成游戏机。 关键是让孩子理解统计的意义:统计是将死数据变成活数据的途径,让数据说话的方式。 3、分数、最小公倍数、最大公约数是小学的难点,也是重点。以后的因式分解、集合、加减转化为乘除,这都 4、图形变换、面积、体积可以对比学习、集中学习。 5、方程、代数直到五年级才开始接触,感觉有点晚。在小学四年级的时候有不少题目,如果用方程会很简单, 我常和一年级的女儿玩一种扑克牌游戏,我就尝试用大小王代替任何数,渐渐让她领悟"王”可以代替任何"X"。而她已经娴熟运用了。 6、做好应用题的关键是将文字信息用数学语言表达出来:画图、列式子、列方程 7、个人觉得小数数学课本的亮点是"“数学广角”,它让数学与生活紧密相连,让数学变得亲切可人。 经过上述剖析,我想到一些很有趣的游戏。通过轻松快乐的方式,就可以让孩子在比较短的时间内轻松玩时,孩子会感到轻松很多。

毕业设计_数据结构【a】十进制整数四则运算计算器

东北大学信息科学与工程学院 数据结构课程设计报告题目十进制整数四则运算计算器课题组长余灏然 课题组成员魏嘉张越 专业名称计算机科学与技术 班级计算机1307 指导教师杨雷 2015 年1月

课程设计任务书 题目: 十进制整数四则运算计算器 问题描述: 由输入的四则运算表达式字符串,动态生成算术表达式所对应的二叉树,通过表达式二叉树自动求值并输出。 设计要求: 设计十进制整数四则运算计算器。 (1)采用二叉树、栈等数据结构。 (2)给定表达式字符串,生成二叉链表的表达式二叉树。 (3)对表达式二叉树采用后序遍历求值并输出。 (4)可以考虑加入复数四则运算功能。 (5)其它完善性功能。 指导教师签字: 2014年12月28日

目录 1 课题概述 (1) 1.1 课题任务 (1) 1.2 课题原理 (1) 1.3 相关知识 (4) 2 需求分析 (4) 2.1 课题调研 (5) 2.2 用户需求分析 (5) 3 方案设计 (5) 3.1 总体功能设计 (5) 3.2 数据结构设计 (5) 3.3 函数原型设计 (5) 3.4 主算法设计 (5) 3.5 用户界面设计 (5) 4 方案实现 (6) 4.1 开发环境与工具 (6) 4.2 程序设计关键技术 (6) 4.3 个人设计实现(按组员分工) 4.3.1余灏然设计实现 (6) 4.3.2 魏嘉设计实现 (9) 4.3.3 张越设计实现 (11) 5 测试与调试 (13) 5.1 个人测试(按组员分工) (13) 5.1.1 余灏然测试 (13) 5.1.2 魏嘉测试 (16) 5.1.3 张越测试 (20) 5.2 组装与系统测试 (25) 5.3 系统运行 (25) 6 课题总结 (26) 6.1 课题评价 (26) 6.2 团队协作 (26) 6.3 个人设计小结(按组员分工) (26) 6.3.1 余灏然设计小结 (26) 6.3.2 魏嘉设计小结 (27)

汇编课程设计报告-四则运算

课程设计报告 一.课程设计的性质和目的 性质:《汇编语言》是计算机科学与技术专业及网络工程本科学生必修的专业课程。 目的要求: 进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。 二.课程设计的要求 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执行继续计算和退出操作

汇编语言课程设计四则运算计算器

微机原理实验报告 汇编语言课程设计报告 ( 2012 -- 2013 年度第1 学期) 实验名称:实现加减乘除四则运算的计算器 专业生物医学工程 学生姓名周炳威 班级B100904 学号B10090406 指导教师乐洋

实现加减乘除四则运算的计算器 1 实验目的 深化学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用 2 实验内容 课题名称:实现加减乘除四则运算的计算器 主要功能:实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。 3 实现方法 本次汇编语言课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 第一步,用INT 21H的1号功能调用来进行输入。利用1号功能调用来输入,即把单个字符一个个的输入并存储到一个数据区里。我们要做的是两个数的运算,先认定输入的格式为1234+5678=或者1111*2222=,当然如果输入不是这样的格式计算出来的结果就不一定是我们想要的结果了。在存储的时候也是有选择的存储,当输入的并非格式里所要求的字符时则报错。 第二步,设计程序进行判断所输入的算式是做加法运算、减法运算、乘法运算还是除法运算,即判断输入的运算符是‘+’号、‘-’号、‘*’号、‘/’号中的哪一个,因为输入的格式固定了,所以只需要把存进数据区的第三个字符拿来与加减乘除四个运算符号进行比较,和哪一个运算符号一样就调用相对应的运算模块进行计算。 2

汇编语言课程设计四则运算计算器

汇编语言课程设计报告 ( 2012 -- 2013 年度第1 学期) 实验名称:实现加减乘除四则运算的计算器 专业生物医学工程 学生姓名周炳威 班级B100904 学号B10090406 指导教师乐洋

实现加减乘除四则运算的计算器 1 实验目的 深化学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用 2 实验内容 课题名称:实现加减乘除四则运算的计算器 主要功能:实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。 3 实现方法 本次汇编语言课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 第一步,用INT 21H的1号功能调用来进行输入。利用1号功能调用来输入,即把单个字符一个个的输入并存储到一个数据区里。我们要做的是两个数的运算,先认定输入的格式为1234+5678=或者1111*2222=,当然如果输入不是这样的格式计算出来的结果就不一定是我们想要的结果了。在存储的时候也是有选择的存储,当输入的并非格式里所要求的字符时则报错。 第二步,设计程序进行判断所输入的算式是做加法运算、减法运算、乘法运算还是除法运算,即判断输入的运算符是‘+’号、‘-’号、‘*’号、‘/’号中的哪一个,因为输入的格式固定了,所以只需要把存进数据区的第三个字符拿来与加减乘除四个运算符号进行比较,和哪一个运算符号一样就调用相对应的运算模块进行计算。

相关文档
相关文档 最新文档