双字节十六进制加法子程序.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 + -
显示快捷键?