简易加法计算器Word下载.docx
- 文档编号:992296
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:14
- 大小:127.96KB
简易加法计算器Word下载.docx
《简易加法计算器Word下载.docx》由会员分享,可在线阅读,更多相关《简易加法计算器Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
端口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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 加法 计算器