您的位置:首页单片机PIC单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

PIC单片机子程序-单字节 双字节的减法

[日期:2008-01-29 ] [来源:东哥单片机学习网(www.picavr.com) 作者:佚名] [字体: (投递新闻)

;********************MUBCDSUB********************
;本程序实现多字节非压缩BCD码减法。
;入口参数: 被减数地址在SADR中,减数地址在DADR中,字节数在CNT中。
;出口参数: 结果首地址在SADR中,字节数在CNT中,借位标志在STATUS:C中,'0'表示有借位。
;占用资源: W,STATUS,FSR,020H,022H,023H,028H,029H,02AH,一重堆栈。
;说    明: 被减数将被冲掉.    

           IFNDEF       MUBCDSUB1
            #DEFINE     MUBCDSUB1

MUBCDSUB    BSF         TEMP3,0     ;清除借位
            MOVF        SADR,W
            MOVWF       TEMP2       ;保存结果首地址
NEXT8       MOVF        DADR,W
            MOVWF       FSR
            MOVF        INDF,W
            MOVWF       TEMP1       ;暂存减数
            MOVF        SADR,W
            MOVWF       FSR
            MOVF        TEMP1,W
            SUBWF       INDF,F
            BTFSC       STATUS,Z
            GOTO        ZERO        ;结果是零
            BTFSC       STATUS,C    ;检查借位
            GOTO        NOC4
            CLRW
            BTFSS       TEMP3,0
            ADDLW       01          ;减掉借位
            ADDLW       0F6H      
            SUBWF       INDF,F      ;减6处理
            BCF         TEMP3,0     ;置借位标志
            GOTO        DONE4
NOC4        BTFSS       TEMP3,0
            DECF        INDF,F
NOC5        BSF         TEMP3,0
            GOTO        DONE4
ZERO        BTFSC       TEMP3,0
            GOTO        NOC5
            MOVLW       09H         ;减1变为9
            MOVWF       INDF
            BCF         TEMP3,0
DONE4       INCF        DADR,F
            INCF        SADR,F
            DECFSZ      CNT,F
            GOTO        NEXT8
            MOVF        TEMP2,W
            SUBWF       SADR,W
            MOVWF       CNT         ;字节数
            SUBWF       SADR,F      ;首地址
            RRF         TEMP3,F     ;借位
            RETLW       0
           ENDIF

上一页12345678910下一页  GO
阅读:
录入:

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐