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

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

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

;********************MCOBCDML2********************
;本程序实现多字节压缩BCD码乘2。
;入口参数: 原数据首地址在SADR中,字节数在CNT中。
;出口参数: 结果首地址在SADR中,字节数在CNT中,进位在STATUS:C中。
;占用资源: W,STATUS,FSR,020H,023H,028H,一重堆栈。
;说    明: 原操作数将被冲掉.    

           IFNDEF       MCOBCDML21
            #DEFINE     MCOBCDML21

MCOBCDML2   CLRF        TEMP1       ;进位位清零
            MOVF        SADR,W     
            MOVWF       FSR
NEXT17      RRF         TEMP1,F
            RLF         INDF,F      ;乘2
            RLF         TEMP1,F     ;保存进位
            BTFSC       INDF,4      ;半进位 = 0 ?
            GOTO        ADJUST2     ;调整LSD
            MOVLW       6
            ADDWF       INDF,F      ;通过加6检测是否 LSD > 9
            BTFSS       INDF,4      ;检查半进位
            SUBWF       INDF,F      ; LSD < 9 ,恢复原值
            GOTO        OVER8
ADJUST2     MOVLW       6
            ADDWF       INDF,F
OVER8       MOVLW       60          ;MSD加6
            ADDWF       INDF,F
            BTFSC       STATUS,C
            GOTO        OVER9
            BTFSS       TEMP1,0
            SUBWF       INDF,F
            GOTO        DONE5
OVER9       BSF         TEMP1,0
DONE5       INCF        FSR,F
            DECFSZ      CNT,F
            GOTO        NEXT17
            MOVF        SADR,W
            SUBWF       FSR,W
            MOVWF       CNT         ;字节数
            RRF         TEMP1,F     ;获得进位位
            RETURN                 
           ENDIF                                          

上一页1 ..89101112  GO
阅读:
录入:JETTA

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


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