文档库 最新最全的文档下载
当前位置:文档库 › 简单计算器8086汇编代码

简单计算器8086汇编代码

简单计算器8086汇编代码
简单计算器8086汇编代码

【课题5】模拟十进制计算器(加,减)

(一)设计要求

1.通过小键盘输入,做十进制的加、减运算,允许五位数以内的不同数位的2个数相加

或相减,连加与/或连减。七段数码管显示器的高位作为符号位,其他5位作为输入数据和计算结果的显示。

2.数字用小键盘0~9;功能键为:A,B,C,D。

C———开始运算(包括取消没有完成的运算),六位七段数码管全部显示‘0’。

A———‘+’,加法操作。

B———‘-’,减法操作。

D———‘=’,计算并显示结果。

3.运算规则(按照一般计算器的功能要求):

a.输入第一个数据,显示器跟随显示。

b.按‘+’或‘-’,显示器内容不变。

c.再输入第二个数据,显示器跟随显示。

d.按‘=’,显示器显示计算结果,当超出能显示的最大值时,显示“F”(溢出)。

e.按‘C’,清除显示,重新开始运算。

(二)提示

1.七段数码管显示和键盘可参考软件实验9、10,LED显示实验,以及可参阅教材第9

章有关章节。

2.显示是动态的、要不断刷新,建议把键盘输入与运算作为主程序,动态显示作为子程

序,在主程序中调用显示子程序。

(三)要完成的工作

1.设计出完整的汇编语言程序。

2.上机调试,在实验系统中通过验收。

3.写出课程设计报告,内容包括:设计思想、功能流程图、结果讨论和完整的源程序。

;(1)通过小键盘做十进制的加、减运算,允许不同数位的5个数相加或相减。七段数码管显示器作输入数据和结果数据的显示。

;(2)数字用小键盘0~9,A、B、C、D作功能键。

;C———开始运算(包括撤销运算),显示‘0’。

;A———‘+’。

;B———‘-’。

;D———‘=’。

;E———退出,返回DOS。

;(3)运算顺序:

;①输入一原始数据,显示器跟随显示。

;②按‘ +’或‘ -’,显示器内容不变。

;③再输入一数据,显示器跟随显示。

;④按‘ =’,显示器显示结果数据,当超出能显示的最大值时,显示“FFFFF”(溢出)。;⑤按‘C’,重新开始运算。

;⑥按‘E’,结束退出。

;******************************************

; 8086系列微机接口实验系统软件实验项目

; 键盘扫描显示实验

;******************************************

INIT MACRO NAME

mov NAME+0,0ffh

mov NAME+1,0c0h

mov NAME+2,0ffh

mov NAME+3,0ffh

mov NAME+4,0ffh

mov NAME+5,0ffh

ENDM

code segment

assume cs:code

OUTSEG equ 0ffdch ;段控制口

OUTBIT equ 0ffddh ;位控制口/键扫口

IN_KEY equ 0ffdeh ;键盘读入口

LedBuf db 10 dup(?) ;显示缓冲

Store db 10 dup(?) ;存放显示第一组数据

num db 10 dup(?)

Store1 db 10 dup(?) ;用于存放第一组数据

num1 db 10 dup(?) ;用于存放第二组数据

flag db 0 ; 作为标记位,若为1代表加为0代表减temp db 0

jinwei db 0

jiewei db 0

in_flag db 0

Key_Buff db 30 dup(?) ;用于键盘输入的存储

org 1000h

Start:

INIT Store

INIT num

INIT LedBuf

mov si,-1 ;设置数组的下标

mov Store1+0,0

mov Store1+1,0

mov Store1+2,0

mov Store1+3,0

mov Store1+4,0

mov num1+0,0

mov num1+1,0

mov num1+2,0

mov num1+3,0

mov num1+4,0

MLoop:

call Disp ;显示

call GetKey ;扫描键盘并读取键值

cmp al,20h

je LL

jmp LL1

LL: mov temp,0

jmp MLoop

LL1: push dx

mov dl,temp

mov temp,1

cmp al,09h

ja transmit

cmp Key_Buff[si],al

jz inkey_flag

jmp LL2

inkey_flag:

cmp temp,dl

pop dx

jz MLoop

jmp LL2 ;!!注意要加这一句

transmit:jmp SPECIAL ;特殊字符特殊处理

LL2: inc si

mov Key_Buff[si],al;将键盘输入的键盘码放到Key_Buff中

cmp si,5

jae abc

push dx

mov dl,Store1+1

mov Store1+0,dl

mov dl,Store1+2

mov Store1+1,dl

mov dl,Store1+3

mov Store1+2,dl

mov dl,Store1+4

mov Store1+3,dl

mov Store1+4,al

pop dx

jmp bcd

abc: mov di,si

sub di,5

push dx

mov dl,num1+1

mov num1+0,dl

mov dl,num1+2

mov num1+1,dl

mov dl,num1+3

mov num1+2,dl

mov dl,num1+4

mov num1+3,dl

mov num1+4,al

pop dx

jmp bcd

bcd: and al,0fh ;显示键码

mov ah,0

mov bx,offset LEDMAP

add bx,ax

mov al,[bx]

cmp si,5

jae next1

mov Store[si+1],al

jmp back1

next1: mov di,si

sub di,5

mov num[di+1],al

jmp start1

back1: push dx ;将Store里的数据放到Led中,方便以后显示 mov dl,Store+1

mov LedBuf+1,dl

mov dl,Store+2

mov LedBuf+2,dl

mov dl,Store+3

mov LedBuf+3,dl

mov dl,Store+4

mov LedBuf+4,dl

mov dl,Store+5

mov LedBuf+5,dl

pop dx

jmp MLoop

start1:

INIT LedBuf

call Disp

;jmp MLoop back2: push dx

mov dl,num+1

mov LedBuf+1,dl mov dl,num+2

mov LedBuf+2,dl mov dl,num+3

mov LedBuf+3,dl mov dl,num+4

mov LedBuf+4,dl mov dl,num+5

mov LedBuf+5,dl pop dx

jmp MLoop

back3: push dx

mov dl,Store+0 mov LedBuf+0,dl mov dl,Store+1 mov LedBuf+1,dl mov dl,Store+2 mov LedBuf+2,dl mov dl,Store+3 mov LedBuf+3,dl mov dl,Store+4 mov LedBuf+4,dl mov dl,Store+5 mov LedBuf+5,dl pop dx

jmp MLoop SPECIAL:

cmp al,0ah

jne decre

mov flag,1

mov si,4

jmp MLoop

decre: cmp al,0bh

jne Restart mov flag,0

mov si,4

jmp MLoop

Restart: cmp al,0ch

jne Exit

mov flag,0

jmp Start

Exit: cmp al,0eh

jne Display

mov Store+0,0Ch ;显示"P"

mov Store+1,0ffh

jmp back1

Display:cmp al,0dh

je print

jmp back3

print: cmp flag,0

je subb

jmp adda

subb:

mov cl,num1+0 ;比较两数大小,如果用小数减大数则交换数据 mov bl,Store1+0

cmp bl,cl

jb jiaoh

mov cl,num1+1

mov bl,Store1+1

cmp bl,cl

jb jiaoh

mov cl,num1+2

mov bl,Store1+2

cmp bl,cl

jb jiaoh

mov cl,num1+3

mov bl,Store1+3

cmp bl,cl

jb jiaoh

mov cl,num1+4

mov bl,Store1+4

cmp bl,cl

jb jiaoh

jmp jianfa

jiaoh: push dx ;交换两个数组中的数值 mov dh,num1+0

mov dl,Store1+0

mov num1+0,dl

mov Store1+0,dh

mov dh,num1+1

mov dl,Store1+1

mov num1+1,dl

mov Store1+1,dh

mov dh,num1+2

mov dl,Store1+2

mov num1+2,dl

mov Store1+2,dh

mov dh,num1+3

mov dl,Store1+3

mov num1+3,dl

mov Store1+3,dh

mov dh,num1+4

mov dl,Store1+4

mov num1+4,dl

mov Store1+4,dh

mov Store[0],0BFh ;最高位显示“-”

pop dx

jianfa: mov cl,num1+4 ;最低位相减

mov bl,Store1+4

cmp bl,cl

jae H1

mov jiewei,1

mov bh,0ah

sub bh,cl

add bl,bh

mov cl,bl

jmp F1

H1:

sub bl,cl

mov cl,bl

jmp F1

F1:

mov al,cl

and al,0fh ;显示键码

mov ah,0

mov bx,offset LEDMAP

add bx,ax

mov al,[bx]

mov Store[5],al

mov cl,num1+3 ;第二位相减

mov bl,Store1+3

sub bl,jiewei

cmp bl,0Fh ;考虑0被借位变成F jz N1

jmp M1

N1: mov bl,09h

jmp M1

M1: mov jiewei,0

cmp bl,cl

jae H2

mov jiewei,1

mov bh,0ah

sub bh,cl

add bl,bh

mov cl,bl

jmp F2

H2:

sub bl,cl

mov cl,bl

jmp F2

F2:

mov al,cl

and al,0fh ;显示键码

mov ah,0

mov bx,offset LEDMAP

add bx,ax

mov al,[bx]

mov Store[4],al

mov cl,num1+2 ;第三位相减

mov bl,Store1+2

sub bl,jiewei

cmp bl,0Fh ;考虑0被借位变成F jz N2

jmp M2

N2: mov bl,09h

jmp M2

M2: mov jiewei,0

cmp bl,cl

jae H3

mov jiewei,1

mov bh,0ah

sub bh,cl

add bl,bh

mov cl,bl

jmp F3

H3:

sub bl,cl

mov cl,bl

jmp F3

F3:

mov al,cl

and al,0fh ;显示键码

mov ah,0

mov bx,offset LEDMAP

add bx,ax

mov al,[bx]

mov Store[3],al

mov cl,num1+1 ;第四位相减

mov bl,Store1+1

sub bl,jiewei

cmp bl,0Fh ;考虑0被借位变成F jz N3

jmp M3

N3: mov bl,09h

jmp M3

M3: mov jiewei,0

cmp bl,cl

jae H4

mov jiewei,1

mov bh,0ah

sub bh,cl

add bl,bh

mov cl,bl

jmp F4

H4:

sub bl,cl

mov cl,bl

jmp F4

F4:

mov al,cl

and al,0fh ;显示键码 mov ah,0

mov bx,offset LEDMAP

add bx,ax

mov al,[bx]

mov Store[2],al

mov cl,num1+0 ;最高位相减 mov bl,Store1+0

sub bl,jiewei

mov jiewei,0

cmp bl,cl

jae H5

mov jiewei,1

sub cl,bl

jmp F5

H5:

sub bl,cl

mov cl,bl

jmp F5

F5:

mov al,cl

and al,0fh ;显示键码 mov ah,0

mov bx,offset LEDMAP

add bx,ax

mov al,[bx]

mov Store[1],al

jmp back3

ADDa:

mov cl,num1+4 ; 最低位执行加法 mov bl,Store1+4

add cl,bl

cmp cl,0ah

java简单计算器源代码

简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { //新建对象,在构造函数中进行初始化 JFrame frame;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanel panelwest,panelcenter,paneleast;//新建三个面板 TextField tf;//新建文本区域对象 public CalcultorThree(){ //初始化对象 tf=new TextField(30);//构造空文本字段,字符宽度为30 frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

C语言课程设计 简单计算器程序

课程设计名称:C语言课程设计课程设计题目:简单计算器程序

目录 第1章需求分析 (1) 1.1设计要求 (1) 1.2任务 (1) 第2章总体设计 (2) 2.1设计简介及设计方案论述 (2) 2.2功能模块层次图 (2) 第3章详细设计 (3) 3.3由(后缀)逆波兰表达式计算中缀表达式原理 (8) 3.3.1算法描述 (8) 第4章调试分析 (10) 4.1程序设计中所遇到的错误及犯错的原因 (10) 4.2错误的解决方法 (10) 第5章用户手册 (11) 总结 (15) 参考文献 (16) 附录(程序清单) (17)

第1章需求分析 1.1 设计要求 (1)用 C 语言数据结构实现程序设计; (2)利用结构体、栈、进行相关信息处理; (2)系统的各个功能模块要求用函数的形式实现; (4)界面简单,可操作性高。 1.2任务 (1)定义一个结构体类型数组,输入0~9 及+、--、*等符号的信息,将其信息存储起来; (2)输入简单的加减乘除算术计算式,并在屏幕上显示逆波兰(后缀式)表达式和计算结果; (3)编写代码; (4)程序分析与调试。 说明: 本课程设计将实现一个简单计算器。在功能上尽量模仿windows 的计算器。系统界面不做牵制要求。该程序能实现标准型中+、-、*、/、(、)、.、的混合运算表达式(一般意义上的中缀表达式),将其转换成逆序波兰表达式(后缀表达式)并计算输出结果。在进行运算后可以选择继续运算或者结束当前运算。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

第2章 总体设计 2.1设计简介及设计方案论述 逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于与之相 关的两个运算对象之间,所以,这种表示法也称为中缀表达式。波兰逻辑学家 J.Lukasiewicz 于 1929 年提出了另一种表示表达式的方法。按此方法,每一运算符都置 于其运算对象之后,故称为后缀表达式。 后缀表达式的优点是显而易见的, 编译器在处理时候按照从左至右的顺序读取逆波 兰表达式,遇到运算对象直接压入堆栈,遇到运算符就从堆栈提取后进的两个对象进行计算,这个过程正好符合了计算机计算的原理。后缀表达式比前缀表达式更加易于转换,并且它的最左面一定为数字,这一点在实 际编程的时候就会体会到它的好处了。 逆波兰表达式有一个更大的优点,就是拆括号,根据运算符的级别将中缀表达式转 换成逆波兰表达式后,运算顺序就已经替代了运算符的级别,这样也避免了括号提高运 算级别的特殊处理。 2.2功能模块层次图 将算术表达式转化为逆波兰表达式 计算逆波兰表达式的值 简单计算器 表 达 式 格 式 转 换 系统 求 值 计 算 系 统

单片机-- 简易计算器汇编程序

NAME T11 单片机--简易计算器汇编程序 ;将键盘的KA10~KA12接8259的KA0~KA2;RL10~RL17接8255A的RL0~RL7 ; T11 8279键盘显示接口实验二 CSEG AT 0000H LJMP START CSEG AT 4100H START: MOV DPTR,#00CFE9H ;8279命令字 MOV A,#0D1H ;清显示 MOVX @DPTR,A LOOP1: MOVX A,@DPTR ANL A,#0FH JZ LOOP1 ;有键按下?没有则循环等待 MOV A,#0A0H ;显示\消隐命令 MOVX @DPTR,A MOV A,#40H ;读FIFO命令 MOVX @DPTR,A MOV DPTR,#0CFE8H ;读键值 MOVX A,@DPTR MOV R1,A ;保存键值加个F MOV DPTR,#0CFE9H ;写显示RAM命令 MOV A,#80H ;选中LED1 MOVX @DPTR,A MOV A,R1 ANL A,#0FH ;取后半字节 MOV DPTR,#TAB MOVC A,@A+DPTR ;取段显码 MOV DPTR,#0CFE8H ;写显示RAM MOVX @DPTR,A MOV DPTR,#0CFE9H ;写显示RAM命令 LOOP2: MOVX A,@DPTR ;输入显示符号 ANL A,#0FH JZ LOOP2 ;有键按下?没有则循环等待 MOV A,#0A0H ;显示\消隐命令 MOVX @DPTR,A MOV A,#40H ;读FIFO命令 MOVX @DPTR,A MOV DPTR,#0CFE8H ;读键值 MOVX A,@DPTR MOV R2,A ;保存键值 MOV DPTR,#0CFE9H ;写显示RAM命令 MOV A,#81H ;选中LED2 MOVX @DPTR,A MOV A,R2 ANL A,#0FH ;取后半字节

大学计算机c语言计算器源代码

C++语言编写。。 #include #include #include using namespace std; const double pi = 3.14159265; const double e = 2.718281828459; const int SIZE = 1000; typedef struct node//为了处理符号而建立的链表(如: 1+(-2)) { char data; node *next; }node; typedef struct stack_num//存储数的栈 { double *top; double *base; }stack_num; typedef struct stack_char//存储运算符号的栈 { char *top;

char *base; }stack_char; stack_num S_num;//定义 stack_char S_char;//定义 char fu[18] = {'\n', ')', '+', '-', '*', '/', '%', '^', 'Q', 'L', 'C', 'S', 'T', 'c', 's', 't', '('}; int compare[1000];//表现出各运算符号的优先级 double shu[1000];//存储"数"的数组 double dai_result;//运算的结果,是为了处理M运算(简介函数里有M的定义) int biao = 0;//和dia_result一样,为了处理M运算 char line[SIZE];//输入的所要计算的表达式 void init()//初始化 { compare[fu[0]] = -2;//用数字的大小表现出符号的优先级 compare[fu[1]] = -1; compare[fu[2]] = 2; compare[fu[3]] = 2; compare[fu[4]] = 4; compare[fu[5]] = 4; compare[fu[6]] = 4;

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

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

注: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; } };

汇编语言程序设计————计算器.doc

课程设计说明书题目 :表达式计算器 学号: 班级 : 计算机创新实验班 姓名:廖福轩

目录 一.设计内容 2 二.设计方案错误!未定义书签。 1.主程序模块 .错误!未定义书签。 2.赋权值模块 .错误!未定义书签。 3.加减乘除运算子程序模块.错误!未定义书签。 4.调用赋权宏子程序模块.错误!未定义书签。 5.回车换行宏模块 .错误!未定义书签。 号功能显示字符串宏模块. 2 三.设计框图 3 四.程序代码 4 五.运行结果错误!未定义书签。 六.设计总结错误!未定义书签。

计算器汇编语言程序设计 一.设计内容 从键盘输入一个十进制两位数的四则运算表达式,如23*56 -( 8*19 ) /6 + 67 - 8=,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),+-*/ 位置任意。并要求程序能 反复执行直道对“还要继续吗(y/n )”之类的提示回答“n”或“ N”为止。 四则运算主要包括以下几个模块: 主程序模块 . 赋权宏模块 . 加减乘除运算子程序模块. 调用赋权宏子程序模块. 回车换行宏模块. 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 输出,从而实现回车换 行功能 . 号功能显示字符串宏模块. 通过定义宏show ,用 9 号显示功能,通过变元str 将字符串显示出来。 三.设计框图

单片机简易计算器设计

单片机简易计算器设计 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

一、设计要求 1.设计4*4的键盘,其中10个数字键0~9,其余6个为“+”“-”“*”“/”“=”和“C” 2.设计2位LED接口电路 3.实现1位数的简单运算 二、硬件系统设计 1、LED接口电路 简易计算器需要2位8段码LED显示电路。用8031单片机经8255A扩展2位8段码LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作为位控制端口。在位控制口加集电极开路的反相高压驱动器74LS06以提供驱动LED显示器所需的足够大的电流,然后接至各数码显示器的共阴极端。同理,在段码数据口集电极开路的正相高压驱动器74LS07提供足够大的电流,然后接到数码显示器的各段。逻辑电路结构如下:

2、键盘接口电路 简易计算器需要4*4的行列式键盘。用8031单片机经8255A扩展4*4行列式键盘,8255A的B口和C口用于扩展键盘接口,B口高4位作为输出口,C口低4位作为输入口。逻辑电路结构如下: 3、计算器逻辑电路图 将LED接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图,如下: 三、软件设计 1、LED显示程序设计 LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED显示器,器排列形状如下图所示:

为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字0~9的共阴极字形代码如下表: 0~9七段数码管共阴级字形代码 2位LED显示的程序框图如下: 2、读键输入程序设计 为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。为了得到被按键的键码,现使用行扫描法识别按键。其程序框图如下: 3、主程序设计 (1)数值送显示缓冲程序设计 简易计算器所显示的数值最大位两位。要显示数值,先判断数值正负,如果是负值,则符号位显示“-”,然后将数值除以10,余数送显最最低位,判断商是否为0,若为0则返回,若不为0,则将商除以10,将余数送显高位。程序框图如下: (2)运算主程序设计

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化 参考代码: import .*;

import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.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)

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.wendangku.net/doc/8b17340369.html,ng.Math; class ring extends JFrame implements ActionListener { //定义成员变量: //JFrame frame;//定义一个窗口类; JTextField text;//定义一个文本框类; JLabel label;//定义一个标签类; JPanel p1,p2,p3,p4,p5,p6;//定义面板类; String s1,s,s2;//定义三个字符串变量; int count=0; JButton a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4 ,d5,d6; //ring的构造函数; ring() { this.setTitle("计算器"); // super("计算器"); JMenuBar menubar1=new JMenuBar();//新建菜单条; this.setJMenuBar(menubar1); JMenu menu1=new JMenu("编辑(E)"); JMenu menu2=new JMenu("查看(V)"); JMenu menu3=new JMenu("帮助(H)"); menubar1.add(menu1); menubar1.add(menu2); menubar1.add(menu3); JMenuItem item1=new JMenuItem("复制(c) ctrl+c"); JMenuItem item2=new JMenuItem("粘贴(p) ctrl+v"); JMenuItem item3=new JMenuItem("标准型(T)"); JMenuItem item4=new JMenuItem("科学型(s)"); JMenuItem item5=new JMenuItem("数字分组(I)"); JMenuItem item6=new JMenuItem("帮助主题(H)"); JMenuItem item7=new JMenuItem("关于计算机(A)"); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6);

汇编语言简单计算器程序毕业课程设计报告[1]

课程设计说明书题目: 简单计算器 院系: 专业班级: 学号: 学生姓名: 指导教师: 2010年12月31日

安徽理工大学课程设计(论文)任务书 计算机科学与工程学院硬件教研室

2010年 12月 17 日

安徽理工大学课程设计(论文)成绩评定表

摘要 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。本次设计的简单计算器支持简单的四则运算。 关键词:汇编语言,简单计算器,高效,硬件

Abstract Assembly 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、使学生在具体的活动中了解计算器的结构和基本功能,能正确地运用计算器进行较大数目的一、两步式题的计算。 2、能用计算器探索一些基本的教学规律、解决一些简单的实际问题。初步感受应根据计算的需要灵活确定不同的计算方式。 教学重难点: 1、重点:使学生了解计算器的基本功能,会使用计算器进行大 数目的计算。 2、难点:使学生通过计算探索发现一些简单的数学规律。 教学过程: 一、创设情境,引入计算器 1.在过去,我们有许多计算工具,如算筹,算盘来计算数据,但 随着这计算越来越复杂,我们会用什么来计算呢?(计算器,电子计算机等等)。 (1)小组合作,认识计算器。 今天我们继续探讨计算器的有关知识。 小组交流: (2)在哪见到过计算器?已经了解计算器的哪些知识? (3)计算器的外部特征、构造及基本功能? (4)计算器主要键的作用、功能及操作方法? 2、学生汇报、操作:

(1)对以上问题进行汇报。出示课件:认识计算器上重要按键的名称和作用。 (2)学生尝试开机、关机。 (3)同桌互相说一说自己已经了解的按键的作用,并可以动手试一试。 二、自主探索,会用计算器。 1. 摸着石头过河 (1)学生尝试完成加法: 386+179=。 指名学生汇报输入过程,然后说出结果。电脑课件实际演示计算过程。 (2)尝试计算加法: 4468+1792=, 指名学生汇报输入过程,然后说出结果。电脑课件实际演示计算过程。 (3)用计算器计算平均成绩。学生探讨求平均成绩的方法,然后计算出结果。 2. 龟兔赛跑。 现在我们已经了结了计算器主要按键的作用,接下来我们来见识一下计算器的能力怎么样?男生用计算器计算,然后把算出的结果记在纸上,女生用笔算。 课件出示

C编写简易计算器附源代码超详细

超详细 一、因为计算器设计的控件太多,不便使用控制台应用程序完成,所以这里 使用Windows窗体应用程序,并命名为Calc,如下图所示: 二、向窗体中拖入需要的控件,如下图所示: (完成效果图) 结果显示区(作者博客左边的文本框)是TextBox控件,并修改其name为txtShow,按键0~9为Button控件,并将其name分别修改为btn_0、btn_1、btn_2、btn_3、btn_4、btn_5、btn_6、btn_7、btn_8、btn_9;按键【负数】的name值修改为btn_sign,按键【.】的name修改为btn_dot,按键【+-*/】的name值分别修改为btn_add、btn_sub、btn_mul、btn_div,按键【=】的name值修改为btn_equ,按键【倒数】的name值修改为btn_rev,按键【平方】的name值修改为btn_sqr,按键【开方】的name值修改为btn_sqrt。右边的计算器图片空间是PictureBox,作者博客控件是LinkLabel,可以不添加,以上所有控件均可按照需求添加,只保留自己需要的按钮控件和textbox控件即可。 三、代码部分(含解释),采用switch多分支语句编写 using System; using System.Drawing; using System.Collections; using https://www.wendangku.net/doc/8b17340369.html,ponentModel; using using System.Data; namespace Calc { ///

///温柔一刀C#简易计算器的实现 /// publicclass CalcForm:Form { private Button btn_0; private Button btn_1; private Button btn_2; private Button btn_3;

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

单片机简易数字计算器-汇编

基 于 单 片 机 的 简 易 计 算 器 设 计 自动化控制一班 kaoyanbaomu521

摘要: 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的两位数的四则运算,程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 关键词: 单片机计算器范围加减乘除 1 引言 1.1 计算器的历史 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 1.2 电子计算器的特殊键 在使用电子计算器进行四则运算的时候,一般要用到数字键,四则运算键和清除数据键。除了这些按键,还有一些特殊键,可以使计算更加简便迅速。 2单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 3 芯片简介 3.1MSC-51芯片简介 MCS-51单片机内部结构 8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

人教版四年级上册数学《用计算器计算》教案

人教版四年级上册数学《用计算器计算》教案 【教学目标】: 1、让学生初步认识计算器,了解计算器的基本功能,会使用计算器进行大数目的一两步连续运算,并通过计算探索发现一些简单数学规律。 2、让学生体验计算器计算的方便与快捷,进一步培养对数学学习的兴趣,感受计算器在人们生活和工作中的价值。 【教学重点、难点】: 通过计算发现一些简单的数学规律。 【教学准备】: 课件、练习纸、计算器 【教学过程】: 一、游戏导入,激发兴趣。 谈话:同学们,你们玩过“快乐联想”的游戏吗?还想玩吗? 课件依次出示四个提示 提示一 提示二 提示三 提示四 完美 基督教 医院

三三两两 师:你能想到什么? 生1:我猜是十字架。 生2:我想可能是……。 出示提示四 生3:我猜是十。 答对的同学,给予肯定。 师:还想玩吗? 课件依次出示提示 提示一 提示二 提示三 提示四 知错能改 小巧 学习用品 计算工具 生1:我猜是橡皮 生2:我也认为是橡皮。 出示了提示四后 生3:计算器。 表扬答对的同学。 今天我们来学习用计算器计算。

课件出示课题,并板书。 二、自主探究,解决问题。 1、认识计算器。 同学们,你们在哪里见过计算器?(根据同学回答,依次出示课件中的图片) 表述:看来计算器已经深入我们生活中。瞧,老师手中就有一个计算器,你们观察过计算器吗?看老师手中的计算器,你们看到了什么?(根据学生回答,依次板书数字键、符号键、功能键、键盘、显 示器) 指出:有些功能键由于我们所学知识有限,现在还不需要用,今后我们可以再慢慢认识它们。 2、认识开机键、关机键。 用计算器前,先按什么键?(ON键,根据学生回答指出开机键) 用完后呢?(OFF键,指出关机键) 3、尝试用计算器计算。 有多少同学会用计算器?真会?那我们来“试着瞧瞧”。 (课件出示38+27=30×18=) 指名说第一题计算过程。 师:你是怎么输入的? (先输入3和8,再输入加号键,输入3和7和等号键,等于65。) 追问:想知道得数,需要输入什么键?(等号键) 指出:算完后,我们可以口算或者笔算验算计算结果。 4、用计算器计算“试一试”。

汇编语言实现简单的计算器运算

汇编语言实现简单的计算器运算 DA TAS SEGMENT x dw 0 op db 0 DIV ARRAY dw 10000,1000,100,10,1 DA TAS ENDS stack segment db 100 dup(?) stack ends CODES SEGMENT ASSUME CS:CODES,DS:DA TAS,ss:stack START: MOV AX,DATAS MOV DS,AX next: call do_cal ;输入第一个表达式如:5+3= call show ;输出表达式结果 mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ;回车换行 jmp next ;跳回输入第二个表达式 do_cal: ;输入表达式 call input ;输入数 cmp al,'e' jz exit MOV OP,AL CMP OP,'+' jnz next1 call do_add jmp next5 next1: CMP OP,'-' JNZ NEXT2 CALL DO_SUB JMP NEXT5 NEXT2: CMP OP,'*' JNZ NEXT3 CALL DO_MUL JMP NEXT5 NEXT3:

CMP OP,'/' JNZ NEXT4 CALL DO_DIV jmp next5 NEXT4: cmp op,'=' call show next5:ret ;判断运算符input: ;输入数字xor bx,bx mov cx,10 skip: MOV AH,1 INT 21H cmp al,'0' jl skip1 cmp al,'9' jg skip1 push ax mov ax,bx mul cx mov bx,ax pop ax and al,0fh xor ah,ah add bx,ax jmp skip skip1:ret do_add: ;加法 mov x,bx call input ;输入第二个数 add bx,x ret do_sub: ;减法 mov x,bx call input ;输入第二个数 sub x,bx mov bx,x ret do_mul: ;乘法 mov x,bx call input ;输入第二个数 mov ax,bx mul x mov bx,ax

java简单计算器源代码

j a v a简单计算器源代码集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

简单计算器代码packagecalcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 *@authorFjsh */ publicclassCalcultorThree{ //新建对象,在构造函数中进行初始化 JFrameframe;//新建窗体对象 JButtonbuttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButtonbuttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButtonbuttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanelpanelwest,panelcenter,paneleast;//新建三个面板 TextFieldtf;//新建文本区域对象 publicCalcultorThree(){ //初始化对象 tf=newTextField(30);//构造空文本字段,字符宽度为30 frame=newJFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

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

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

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

相关文档