双字节十六进制加法子程序.txt
来自「实用子程序.rar本子程序库对《单片机应用程序设计技术》一书附录中的子程序库作了」· 文本 代码 · 共 38 行
TXT
38 行
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 + =
减小字号Ctrl + -
显示快捷键?