文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言实现简单的计算器运算

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

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

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

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

ret

do_div: ;除法

mov x,bx

xor dx,dx

call input ;输入第二个数

mov ax,x

cwd

div bx

mov bx,ax

ret

show: ;显示输出

MOV CX,5

MOV AX,bx

MOV SI,OFFSET DIV ARRAY LP1: mov dx,0

DIV WORD PTR [SI]

PUSH DX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H

add si,2

POP AX

LOOP LP1

ret

exit: MOV AH,4CH

INT 21H

CODES ENDS

END START

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

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 ;取后半字节

GUI设计的简易计算器附程序

电子信息工程系实验报告 课程名称:MATLAB 应用 实验项目名称:GUI 计算器设计 实验时间:2012-11-22班级:测控081姓名:学号:810707132实验目的: 1.熟悉MATLAB 的菜单设计方法 2.熟悉MATLAB 的主要控件使用方法 3.熟悉MATLAB 的GUI 设计流程 4.运用MATLAB 的GUI 设计一个简单的计算器 实验环境: MATLAB7.8 实验内容: function varargout =jisuanqi1(varargin)%JISUANQI1M-file for jisuanqi1.fig %JISUANQI1,by itself,creates a new JISUANQI1or raises the existing %singleton*.%%H =JISUANQI1returns the handle to a new JISUANQI1or the handle to %the existing singleton*.%%JISUANQI1('CALLBACK',hObject,eventData,handles,...)calls the local %function named CALLBACK in JISUANQI1.M with the given input arguments.%%JISUANQI1('Property','Value',...)creates a new JISUANQI1or raises the %existing singleton*.Starting from the left,property value pairs are %applied to the GUI before jisuanqi1_OpeningFunction gets called.An %unrecognized property name or invalid value makes property application %stop.All inputs are passed to jisuanqi1_OpeningFcn via varargin.%%*See GUI Options on GUIDE's Tools menu.Choose "GUI allows only one %instance to run (singleton)".%%See also:GUIDE,GUIDATA,GUIHANDLES %Edit the above text to modify the response to help jisuanqi1 %Last Modified by GUIDE v2.505-Dec-201022:24:59 %Begin initialization code -DO NOT EDIT gui_Singleton =1;成 绩: 指导教师(签名):

汇编语言程序设计————计算器.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 将字符串显示出来。 三.设计框图

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

汇编语言入门

汇编语言入门教程 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS 的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志,将在下文用到时详细说明。 内存是电脑运作中的关键部分,也是电脑在工作中储存信息的地方。内存组织有许多可存放

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)

基于单片机的简易计算器设计

目录 引言 (1) 第一章设计原理及要求 (2) 1.1设计方案的确定 (2) 1.2系统的设计方案 (2) 1.3系统的设计要求 (2) 第二章硬件模块设计 (4) 2.1单片机AT89C51 (4) 2.1.1 AT89C51芯片的特点 (5) 2.1.2 管脚说明 (5) 2.1.3 振荡器特性 (7) 2.1.4 芯片擦除 (7) 2.2键盘控制模块 (7) 2.2.1 矩阵键盘的工作原理 (8) 2.2.2 键盘电路主要器件介绍 (8) 2.3LCD显示模块 (10) 2.3.1 显示电路 (11) 2.3.2 LCD1602主要技术参数 (11) 2.3.3 引脚功能说明 (11) 2.4运算模块(单片机控制) (12) 第三章软件设计 (14) 3.1功能介绍 (14) 3.2系统流程图 (14) 3.3程序 (16) 第四章系统调试 (17) 4.1软件介绍 (17) 4.1.1 Keil uVision2仿真软件简介 (17) 4.1.2 protues简介 (17)

4.2软件调试 (18) 4.2.1 软件分析及常见故障 (18) 4.2.2 仿真结果演示 (20) 4.3硬件调试 (21) 结束语 (23) 参考文献 (24) 附录 (25) 致谢 (36)

引言 计算工具最早诞生于中国,中国古代最早采用的一种计算工具叫筹策,也被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的,约二百七十枚一束,放在布袋里可随身携带。另外直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。 17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加、减、乘、除、乘方和开方运算,甚至可以计算三角函数、指数函数和对数函数。这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器,在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是它只能做加减运算。1694年,莱布尼兹在德国将其改进成可以进行乘除的计算。此后,一直到20世纪50年代末才有电子计算器的出现。

计算机组成原理与汇编语言(课后习题).

《计算机组成原理与汇编语言》习题 第一章 1. 计算机中为什么都采用二进制数而不采用十进制数? 2. 写出下列用原码或补码表示的机器数的真值: a (1 01101101 (2 10001101 (3 01011001 (4 11001110 3. 填空: a (1 (123410=(2=(16 b (2 (34.687510=(2=(16 c (3 (271.33 10 = ( 2= ( 16 d (4 (101011001001 2 = ( 10 = ( 16 e (5 (1AB.E 16 = ( 10 = ( 2 f (6 (10101010.0111 2= ( 10 = ( 16 4. 已知X=36,Y=-136,Z=-1250,请写出X、Y、Z的16位原码、反码、和补码。 5. 已知[X]补=01010101B,[Y]补=10101010B,[Z]补=1000111111111111B,求X、Y、Z及X+Y,Y-Z的十进制值为多少? 6. 用8位补码进行下列运算,并说明运算结果的进位和溢出: a (1 33+114 (233-114 (3(-33+114 (4(-33 -114 7. 将下列十进制数表示为8421BCD码: (18609 (25254 (32730 (42998

8. 将下列8421BCD码表示为十进制数和二进制数: a (101111001 (2001010000101 (3022********* (4 010********* 9. 将下列数值或字符串表示为相应的ASCII码: (151 (27FH (3C6H (4Computer (5 how are you? 10. 定点数和浮点数表示方法各有什么特点? 11. 微处理器、微型计算机和微型计算机系统三者之间有什么不同? 12. 微型计算机由哪几部分组成,各部分功能是什么? 13. CPU在内部结构上由哪几部分组成,CPU应具备什么功能? 14. 简述计算机执行指令和执行程序的过程。以书中的例子为例,说明在此三条指令执行中,哪些信号属于数据流,哪些信号属于控制流? 15. 微型计算机外部为什么采用三总线结构? 16. 数据总线和地址总线在结构和作用上有什么不同? 17. 如果某几种CPU的地址总线分别有8、16、20、32条,它们各自能寻址的存储器的容量是多少? 18. 什么是硬件,什么是软件,硬件和软件的关系如何? 19. 说明位、字节、字长的概念及它们之间的关系。 20. 计算机的发展趋势有哪些?你如何看待冯?诺依曼计算机体系结构理论? 21. 说出几种型号的CPU,它们各有什么特点? 22. 说出目前流行的几种主机板的类型以及它们的性能特点。

汇编语言简单计算器程序毕业课程设计报告[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

单片机设计简易计算器

简易计算器 Simply Calculator 1 设计思想 此计算器有键盘部分、单片机、显示部分三部分组成,键盘部分主要完成输入功能;单片机主要完成数据处理功能,包括确定按键,完成运算,以及输出数据;显示器部分主要完成单片机输出的显示。 本设计的思路是利用单片机性能好,稳定性强的优点来实现系统的运行。设计大致可以分为三个步骤:第一步,硬件的选取和设计;第二步,程序的设计和调试;第三步,Protues 系统仿真。 硬件是设计的骨骼,不仅关系到设计总体方向的确定,还要综合考虑节能,环保,以及稳定性和经济性等各种因素。因此需要花费大量的时间。硬件的选取最为重要,包括选用的芯片,显示设备的选取,输入设备的选取等。本设计是通过单片机来实现的,因此选用了ATMEGA16单片机作为主体,输入设备选用矩阵键盘。程序是硬件的灵魂,是实现设计的中心环节。本设计使用的程序语言是C语言,在“ICC AVR”中运行,调试,直到运行出正确结果,然后输出后缀名为.HEX格式的文件,以备在Protues中仿真使用。程序是设计的关键,程序的调试需要大量的时间,耐心,还够要有足的细心才能成功。本设计中就出现了大量的错误,经过认真修改,最终才能运行出正确结果。最后的系统仿真是设计是否成功的验证,是设计不可缺少的重要环节。这就要求能掌握Protues的一些基本操作。2原理分析 2.1矩阵键盘的扫描 图2.1 矩阵键盘图

如图2.1所示,单片机的8个I/O口和矩阵键盘相连,用8个I/O口来控制矩阵键盘的16个按键是非常有意思的,首先我们设置单片机的PD0—PD7为输出,且PD0—PD3依次设置为低电平,而PD4—PD7设置为高电平,然后我们设置PD4—PD7为输入,而PD0—PD3仍然为输出,假如此时M1键按下,则PD0与PD4相连,因为PD0是低电平,而PD4是输入,所以PD4会被拉为低电平,同理,如果M2被按下,则PD5会被拉低,M3按下,PD6会被拉低,M4按下,PD7被拉低。这是判断有无键盘按下的过程,当我们判断是那一个键盘按下时,我们首先设置8个I/O口为输出,输出为FE,即,PD0为低电平,其他全为高电平,然后我们设置PD4—PD7为输入,如果M1被按下,则PD4会比被拉为低电平,此时会变成EE,同理可以知道M2被按下时会变为DE,M3被按下时会变为BE,M4被按下时会变为7E。同理我们可以设置8个I/O口输出FD来检测M5—M8是否被按下,设置8个I/O口输出FC来来检测M9—M12,设置8个I/O口输出F7来检测M13—M16,如果M1—M4没有被按下,就继续检测M4—M8,一次类推,就可以检测出16个按键了。在这次设计中,16个按键M1—M16所对应检测值分别为:EE,DE,BE,7E,ED,DD,BD,7D,EB,DB,BB,7B,E7,D7,B7,77。 2.2 数字显示与计算 本次设计选用的显示器是1602液晶显示器,此液晶显示器能显示32个字符,VSS接地,VDD接电源正极,E为时使能信号,R/W为读写选择端(H/L),RS为数据/命令选择端(H/L),D0—D7为数据I/O口。 首先我们初始化液晶显示器,然后显示出第一个被按下的数,并且使光标右移,如果有第二个数按下,则据继续显示,以此类推,然后把所有显示出来的数换算成一个数,如果按下“+”号,则显示出“+”,并且同理显示出“+”号后面按下的数字,然后调用加子程序,运算出结果,如果按下的是“-”,则调用减子程序,如果按下“*”,则调用乘子程序,如果按下“/”,则调用除子程序。然后再调用显示结果子程序,显示出结果。

计算机组成原理与汇编语言综合练习题

计算机组成原理与汇编语言综合练习题 一、填空题 1.表示一个数值数据的基本要素是、、。 2.8位二进制补码所能表示的十进制整数范围是至,前者的二进 制补码表示为,后者的二进制补码表示为。 3.某机定点整数格式字长8位(包括1位符号位),用二进制表示最小负数的反 码为,最大正数的反码为。 4.在数的表示范围方面,浮点比定点。在运算规则方面,浮点比定 点。在运算精度方面,浮点比定点。 5.浮点数表示中,数据的范围由的位数据决定,数的精度由决 定。 6.已知0和9的ASCII码分别为0110000和0111001,则3的ASCII码 为,5的ASCII码为。 7.已知字符A的ASCII码为1000001,则字符B的ASCII码为,字符D 的ASCII码为。 8.15的8421码为。 9.每条指令由两部分组成,即部分和部分。 10.有一机器字16位,其中操作码占4位。若采用三地址寻址,则每个地址位为 位,可直接寻址空间为字节;若采用单地址寻址,则每个地址位为位, 可直接寻址空间为字节。 11.零地址指令是不带的机器指令,其操作数是由提供 的。 12.存储器堆栈中,需要一个,用它来指明的变化。 13.运算器的主要功能是进行。 14.SN74181 ALU是一个位运算单元,由它组成16位ALU需使用片 SNN74182 ,其目的是为了实现并行操作。 15.在微程序控制器中,微操作是由控制实现的最基本操作。一条机器指 令是由若干组成的微程序来解释执行的。 16.微程序顺序控制常用的两种方式是方式和方式。 17.控制器的控制方式有、和三种形式,其中方 式最节省时间,方式最浪费时间,而方式介于两者之间。 18.在控制器中,指令寄存器(IR)的作用是,它的位数与有 关。 19.使用Intel 2114(1K×4位)芯片32片可组成容量为 KB内存,每片片 内地址线有位。 20.若有一个512K字的存储器,它由四个存储体组成,每个存储体为16K,则该 存储体的字长是位。 21.计算机的I/O系统由、、和组成。 22.通常外部设备寻址方式有、和等三种方式。 23.中断请求是中断源向发出的申请中断要求,发出中断请求的条件 是。和。 24.中断返回时要恢复和,才能返回主程序继续执 行。 25.发向量地址和执行中断隐指令在程序中断处理过程的阶段,执 行中断服务程序在阶段,自动恢复程序断点地址在阶段。 26.中断隐指令的功能是:在响应中断之后立即中止现行程序,保护 . 和。内容,取出新的送入程序状态字寄存器,取出相应的送程序计 数器。 27.一个完整的程序中断处理过程应包括、、、 和▁五个阶段。

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

汇编语言实现简单的计算器运算 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

单片机课程设计——基于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 程序清单.................................. 一、设计任务和要求

简易计算器的设计

一、功能实现:利用1602液晶显示器实现整数和小数的加法、减法、乘法、除法、开根号的运算。第一行显示输入的数据,第二行显示运算结果。 二、Proteus仿真图

三、操作说明:每次运算完后必须按一下清零键,该系统才会重新开始执行。 四、程序: #include #include #define int unsigned int #define char unsigned char void inti(); //初始化

void delay(); //延时 void anjian(); //按键显示数字和符号,第一个数存在a内 void sheji(); //设计显示完后的参数 void jsab(); //存储两个输入数 void jisuanxs(); //计算显示 void chufa(); //除法计算部分 void chengfa(); //乘法计算部分 void jianfa(); //减法计算部分 void jiafa(); //加法计算部分 void kaigenhao(); //开根号运算部分 void benshenxs(); //一个数本事显示 void leijixiaoshudian(); //小数点的累计 void fenli(); //计算后的结果分离,以便于显示 void ql(); //清屏 void xshuju(char shuju); //写数据 void xzhiling(char zhiling); //写指令 //char num[]="I LOVE YOU"; 显示在屏幕上 int sz[]={'0','1','2','3','4','5','6','7','8','9','+','-','*','/','=','.'}; char xs[]="ENRRO"; sbit e=P2^2; sbit rs=P2^0; sbit rw=P2^1; sbit key0=P2^6; sbit key1=P2^7; sbit key2=P3^0; sbit key3=P3^1; sbit key4=P3^2; sbit key5=P3^3; sbit key6=P3^4; sbit key7=P3^5; sbit key8=P3^6; sbit key9=P3^7; sbit key10=P1^3; sbit key11=P1^4; sbit key12=P1^5; sbit key13=P1^6; sbit key14=P1^7; sbit qingling=P1^0; sbit key15=P1^1; sbit key16=P1^2; int fuhao,num,m,n,q,w,s,fuhao1,fuhao2,fuhao3,fuhao4,fuhao5,xiaoshu,cishu1,cishu2; int i,g,j,p; int t,f,h; float a,b,c,d;

汇编语言与计算机系统组成单选题

题干A B C D答案难度[1]电子计算机技术在半个世纪中虽有很大的进步,但至今其运行 仍遵循着一位科学家提出的基本原理。他就是( )。 牛顿爱因斯坦爱迪生冯·诺依曼D中 目前我们所说的个人台式商用计算机属于( )。巨型机中型机小型机微型机D中 冯·诺依曼机工作方式的基本特点是( )。多指令流单数据流按地址访问并顺序执行指令堆栈操作存储器按内容选择地址B中 至今为止,计算机中的所有信息仍以二进制方式表示,其理由 是( )。 节约元件运算速度快物理器件性能决定信息处理方便C中 对计算机的软、硬件资源进行管理,是( )的功能。操作系统数据库管理系统语言处理程序用户程序A中 CPU的组成中不包含( )。存储器寄存器控制器运算器A中 主机中能对指令进行译码的器件是( )。ALU运算器控制器存储器C中 许多企事业单位现在都使用计算机计算、管理职工工资,这属 于计算机的( )应用领域。 科学计算数据处理过程控制辅助工程B中 微型计算机的发展以( )技术为标志。操作系统微处理器磁盘软件B中 邮局对信件进行自动分拣,使用的计算机技术是( )。机器翻译自然语言理解机器证明模式识别D中 电子邮件是指( )。用计算机管理邮政信件通过计算机网络收发消息用计算机管理电话系统用计算机处理收发报业务B中 微型计算机的工作环境要求室温一般在15~35度,室温过低容 易造成( )。 磁盘读写出错静电干扰机内元器件受潮变质散热不好,烧毁电源A中 下列关于微处理器的描述中,( )是正确的。微处理器就是一台微机微处理器是微机系统微处理器就是主机微处理器可以用作微机的CPU D中 下列的四个叙述中,只有一个是正确的,它是( )。系统软件就是买来的软件,应用软 件就是自己编写的软件 外存上的信息可以直接进入CPU被 处理 用机器语言编写的程序可由计算机 直接执行 说一台计算机配置了FORTRAN语 言,就是说它一开机就可以用 FORTRAN语言编写和执行程序 C中 将有关数据加以分类、统计、分析,以取得有利用价值的信 息,我们称其为( )。 数值计算辅助设计数据处理实时控制C中微型计算机的分类通常以微处理器的( )来划分 。规格芯片名字长寄存器数目A中下列( )型号计算机标志了计算机时代的真正开始。ENIAC EDVAC EDSAC UNIVAC-I D中地址是内存储器各存储单元的编号,现有一个32KB的存储器, 用十六进制数表示它的地址码,则地址码应从0000H到( ) H。 3276780007FFF8EEE C中 Intel的创始人高登·摩尔总结的摩尔定律说:单片集成电路 所包含的晶体管数目大约每( )个月增加一倍。 12152418D中 在计算机未来发展展望中,计算机科学家们提出的最有可能取 代电子计算机的计算机探索方案是( )计算机。 光子计算机DNA计算机分子计算机量子计算机D中 The fundamental conceptual unit in a computer is: ( ) CPU Hard Drive Operating System Transistor D中 Virtually all computer designs are based on the von Neumann architecture. A high level view of this architecture has the following three components:( )Buses, memory, input/output controllers Hard disks, floppy disks, and the CPU memory, the CPU, and printers memory, input/output modules, and the CPU D中 Which of the following programming languages has an instruction set closest to the machine language of a computer? ( ) BASIC Fortran Assembly Language C++C中 Program that manages the resources of a computer for the benefit of the programs that run on that machine is ( ). Compiler Operating System ALU Control Unit B中 Program that translates from a high-level notation to assembly language is ( ). Compiler Instruction Set CPU Operating System A中计算机中表示地址时使用( )。无符号数原码反码补码A中对于二进制码10000000,若其值为-0,则它是用( )表示 的。 原码反码补码阶码A中对于二进制码10000000,若其值为-128,则它是用( )表 示的。 原码反码补码阶码C中对于二进制码10000000,若其值为-127,则它是用( )表 示的。 原码反码补码阶码B中字长16位,用定点补码小数表示时,一个字所能表示的范围是 ( )。 0~(1-2^-15)-(1-2^-15)~(1-2^-15)-1~+1-1~(1-2^-15)D中某机字长32位,其中1位符号位,31位尾数。若用定点整数补 码表示,则最小正整数为( )。 +1+2^31-2^32-1A中 某机字长32位,其中1位符号位,31位尾数。若用定点整数补 +1+2^31-2^32-1C中

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