⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mubcdadd.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;********************MUBCDADD********************
;本程序实现多字节非压缩BCD码加法。
;入口参数: 被加数地址在SADR中,加数地址在DADR中,字节数在CNT中。
;出口参数: 结果首地址在SADR中,字节数在CNT中,进位在STATUS:C中。
;占用资源: W,STATUS,FSR,020H,022H,023H,028H,029H,02AH,一重堆栈。
;说    明: 被加数将被冲掉.     

           IFNDEF       MUBCDADD1

            #DEFINE     MUBCDADD1
MUBCDADD    CLRF        TEMP3       ;进位位清零
            MOVF        SADR,W
            MOVWF       TEMP2       ;保存结果首地址
NEXT2       MOVF        DADR,W
            MOVWF       FSR
            MOVF        INDF,W
            MOVWF       TEMP1       ;暂存加数
            MOVF        SADR,W
            MOVWF       FSR
            MOVF        TEMP1,W
            ADDWF       INDF,F
            BTFSS       STATUS,DC   ;检查半进位
            GOTO        NODC2
            BTFSC       TEMP3,0     ;低位送来的进位
            INCF        INDF,F      ;此时不可能产生进位
            MOVLW       6           
            ADDWF       INDF,F      ;加6处理
OVER6       MOVLW       0FH
            ANDWF       INDF,F      ;去掉高四位
            BSF         TEMP3,0
            GOTO        DONE1
NODC2       BTFSS       TEMP3,0
            MOVLW       6
            BTFSC       TEMP3,0
            MOVLW       7
            ADDWF       INDF,F
            BTFSC       STATUS,DC   ;DC为1,表明原结果大于9
            GOTO        OVER6
            MOVLW       06H
            SUBWF       INDF,F
            BCF         TEMP3,0
DONE1       INCF        DADR,F
            INCF        SADR,F
            DECFSZ      CNT,F
            GOTO        NEXT2
            MOVF        TEMP2,W
            SUBWF       SADR,W
            MOVWF       CNT         ;恢复字节数
            MOVF        TEMP2,W
            MOVWF       SADR
            RRF         TEMP3,W     ;将进位位移到STATUS:C中
            RETLW       0
           ENDIF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -