📄 计算器程序.asm
字号:
;******************************************************************
; 简单的计算器,能够计算两位的加减除法和被乘数最多为两位而乘数为
; 一位的乘法。除法结果商显示2s,余数间断1s闪烁。除数为零时报警!
;*******************************************************************
ORG 0000H
AJMP BEGIN
ORG 0100H
BEGIN: MOV DPTR,#8003H ;8255初始化
MOV A,#80H
MOVX @DPTR,A
MOV SP,#30H ;堆栈初始化
DSP0: SETB 08H ;"+"," _"," *"," /"检验位
MOV 20H,#0
MOV 08H,#3 ;数字位数检验标志
MOV 09H,#0 ; 此单元清零
MOV 0AH,#0 ;此单元清零
MOV 0BH,#0 ;此单元清零
MOV 0CH,#0 ;此单元清零
MOV 0DH,#0 ;此单元清零
MOV 0EH,#0 ;此单元清零
RETURN1: MOV R5,#0 ;工作寄存器清零
MOV R6,#0
MOV R7,#0
RETURN: ACALL SCAN ;键盘扫描
CJNE A,#0FFH,NEXT ;如果有键按下则转移
SJMP RETURN
NEXT: CJNE A,#0AH,NUM ;判断键型
NUM: JNC CONT ;若是功能键则转移
DJNZ 08H,GOTO ;检验数字位如已经输入两个数字则不在允许用户键数字
MOV 08H,#1
SJMP RETURN
GOTO: LCALL DISPLAY1 ;显示数字
LCALL DELAY200MS
SJMP RETURN ;继续扫描
CONT: JNB 08H,EQUIT ;如已经有“+”“
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -