📄 双字节十六进制加法子程序.txt
字号:
LIST p=16f877
INCLUDE p16f877.inc
ACCALO EQU 20 ;存放加数或减数低8位
ACCAHI EQU 21 ;存放加数或减数高8位
FULL EQU 22 ;22.0存放进位
ACCBLO EQU 23 ;存放被加数或被减数低8位
ACCBHI EQU 24 ;存放被加数或被减数高8位
;影响字节 STATUS W 在0体运算
ORG 0X0000
START GOTO MAIN
MAIN MOVLW 0X01 ;被加数666EH送ACCB
MOVWF ACCBLO
MOVLW 0XFF
MOVWF ACCBHI
MOVLW 0X0FF ;加数BB8H送ACCA
MOVWF ACCALO
MOVLW 0XFF
MOVWF ACCAHI
CALL D_add ;调用双字节加法子程序,求和
goto $
;***双字节加法子程序,入口地址ACCB+ACCA,出口地址ACCB***
D_add MOVF ACCALO,0 ;ACCB和ACCA低半字节相加
ADDWF ACCBLO
BTFSC STATUS,C ;有进位否?
goto $+6 ;有,
MOVF ACCAHI,0 ;ACCA、ACCB高半字节相加
ADDWF ACCBHI
BTFSC STATUS,C
BSF FULL,0
RETURN ;子程序返回
MOVFW ACCBHI ;ACCB高字节加1,再加ACCAHI
ADDLW 1h
BTFSC STATUS,C ;有进位否?
BSF FULL,0
MOVWF ACCBHI
GOTO $-D'10'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -