简易加法计算器Word下载.docx

上传人:b****2 文档编号:992296 上传时间:2023-04-29 格式:DOCX 页数:14 大小:127.96KB
下载 相关 举报
简易加法计算器Word下载.docx_第1页
第1页 / 共14页
简易加法计算器Word下载.docx_第2页
第2页 / 共14页
简易加法计算器Word下载.docx_第3页
第3页 / 共14页
简易加法计算器Word下载.docx_第4页
第4页 / 共14页
简易加法计算器Word下载.docx_第5页
第5页 / 共14页
简易加法计算器Word下载.docx_第6页
第6页 / 共14页
简易加法计算器Word下载.docx_第7页
第7页 / 共14页
简易加法计算器Word下载.docx_第8页
第8页 / 共14页
简易加法计算器Word下载.docx_第9页
第9页 / 共14页
简易加法计算器Word下载.docx_第10页
第10页 / 共14页
简易加法计算器Word下载.docx_第11页
第11页 / 共14页
简易加法计算器Word下载.docx_第12页
第12页 / 共14页
简易加法计算器Word下载.docx_第13页
第13页 / 共14页
简易加法计算器Word下载.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

简易加法计算器Word下载.docx

《简易加法计算器Word下载.docx》由会员分享,可在线阅读,更多相关《简易加法计算器Word下载.docx(14页珍藏版)》请在冰点文库上搜索。

简易加法计算器Word下载.docx

端口B和端口C的低4位(PC3~PC0)构成B组;

由B组控制部件实现控制功能。

A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(D0~D7)送来的控制字,并根据他们来定义各个端口的操作方式。

3.数据总线缓冲存储器

三态双向8位缓冲器,是8255A与8086CPU之间的数据接口。

与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。

4.读/写控制部件

8255A完成读/写控制功能的部件。

能接收CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。

CS片选信号:

由CPU输入,有效时表示该8255A被选中。

RD,WR读、写控制信号:

由CPU输入。

RD有效表示CPU读8255A,WR有效表示CPU写8255A。

RESET复位信号:

RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入方式。

5.键盘输入模块

由于运算过程中出现的进借位问题,会导致输出的结果为一位数,二位数,三位数或者是负数,所以在选择输出的方式时若是选9号功能调用会很不方便,因为9号功能调用要求有一个输出字符的缓冲区,由于输出的结果形式太多,缓冲区太难确定,而且若结果为负数,负号也得事先进行设置,所以单字符输出是一个合理的选择。

3.3程序流程图:

说明:

该程序流程图简要地表现出了所要实现的功能以及一些功能的大概算法,同时也是我编写的程序的一个总体的框架。

通过流程图,可以看出程序开始运行时,首先输出提示语句,再输入字符,并判断输入的字符是否为Q或q,若是,则退出,不是则继续输入;

判断输入的字符是否为C或c,若是,则清屏重新输入,否则继续输入;

判断输入的是不是回车键,若是就回车换行输入,不是则继续输入;

判断输入的是否为0~9,+,-,=这些字符,若不是会报错,是则将其存储到定义的数据区BUFF里面,再判断如果输入的不是=功能键,则继续输入,若是,则判断是做加法运算还是减法运算,最后输出结果,并重新输入,继续上面的步骤。

4.功能实现

电路图:

程序源代码:

DATASEGMENT

BUFFDB6DUP(?

JIEGUODB3DUP(?

COUNTEQU6

TISHIDB'

Theadditionandsubtractionoperationsoftwotwo-digit'

0DH,0AH,'

Input"

="

thenoutputtheresult:

'

$'

ERROR1DB0DH,0AH,'

Inputerror!

Pleaseinputagain!

HUICHEDB0DH,0AH,'

TUICHUDB'

Pleasepressanykeytocontinue!

'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,TISHI

MOVAH,9

INT21H

LEASI,JIEGUO

LEABX,BUFF

START1:

MOVAH,1

CMPAL,'

Q'

;

输入为Q或q时退出程序

JZEXIT

CMPAL,'

q'

C'

输入为C或c时清屏

JZQINGPING

c'

CMPAL,0DH;

输入回车键换行重新输入

JZHUANHANG

+'

输入的字符不为+,-,=,0到9的字符时,则报错,并重新换行输入,是则存储

JNZLOOP1

JMPCUNCHU

HUANHANG:

LEADX,HUICHE;

实现换行的功能

JMPSTART1

ERROR:

LEADX,ERROR1

CUNCHU:

对输入的字符进行存储

MOV[BX],AL

INCBX

LOOP1:

-'

JNZLOOP3

LOOP2:

0'

JBERROR

9'

JAERROR

SUBAL,30H

LOOP3:

='

JZLOOP4

JMPLOOP2

LOOP4:

判断为加法还是减法运算

XORBX,BX

MOVCX,COUNT

PANDUAN:

CMPBYTEPTR[BX+2],'

JZJIAFA

JMPJIANFA

JIAFA:

MOVDL,BYTEPTR[BX+1];

提取两个加数个位的数据

MOVAL,BYTEPTR[BX+4]

ADDAL,DL

CMPAL,10

JAETZ1

ADDAL,30H

MOV[SI+1],AL

MOVDL,BYTEPTR[BX];

提取两个加数十位的数据

MOVAL,BYTEPTR[BX+3]

JMPBACK1

BACK1:

ADCAL,DL

JAETZ10

MOV[SI],AL

JCDATA3

JMPDATA2

BACK10:

TZ10:

SUBAL,10;

十位相加有进位的处理

STC

JMPBACK10

TZ1:

个位相加有进位的处理

MOV[SI+1],AL

MOVDL,BYTEPTR[BX]

INCAL

JMPBACK1

JIANFA:

MOVDL,BYTEPTR[BX];

提取被减数和减数十位的数据

CMPAL,DL

JZCOMP1

JAFU

JMPZHENG

ZHENG:

LEASI,JIEGUO;

结果为正数的运算

提取被减数和减数个位的数据

CMPDL,AL

JBJIEWEI1

SUBDL,AL

MOVAL,DL

JMPSUB1

SUB1:

CMPAL,0

JZDATA1

JIEWEI1:

;

借位处理

ADDDL,10

SUBDL,1

COMP1:

MOVDL,BYTEPTR[BX+1]

JZZERO

JAFU1

JBZHENG1

ZHENG1:

JMPDATA1

FU1:

SUBAL,DL

JMPFUSHU1

FU:

结果为负数的运算

JBFU_1

MOVDL,BYTEPTR[BX]

SUB2:

CMPAL,30H

JZFUSHU1

JMPFUSHU2

FU_1:

ADDAL,10;

SUBAL,1

JMPSUB2

AAPROCNEAR;

输出两位数的子程序

MOVDL,[SI]

MOVAH,2

MOVDL,[SI+1]

RET

AAENDP

ZERO:

MOVDL,30H;

结果为0的输出

DATA1:

一位数的输出(如13-12=1)

DATA2:

CALLAA;

两位数的输出(如32-14=18或18+14=32)

DATA3:

MOVDL,31H;

三位数的输出(如89+77=166)

CALLAA

FUSHU1:

MOVDL,'

结果为一位数的负数的输出(如13-22=-9)

FUSHU2:

结果为两位数的负数的输出(如23-45=-22)

QINGPING:

MOVAL,0;

实现清屏功能

MOVBH,7

MOVCH,0

MOVCL,0

MOVDH,24H

MOVDL,79H

MOVAH,6

INT10H

MOVDX,0

EXIT:

LEADX,TUICHU;

退出程序

MOVAH,4CH

CODEENDS

ENDSTART

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2