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

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

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

;********************MCOBCDMUL********************
;本程序实现多字节压缩BCD码数乘法。
;入口参数:被乘数地址在SADR中,乘数地址在DADR中,字节数在CNT中(小于32字节),2W
;          个字节的结果地址在SADRH中。
;出口参数:结果在指定单元中,字节数在CNT中,地址在SADR中。
;占用资源:W,FSR,STATUS,020H~02B,三重堆栈。
;说    明: 1.结果与被乘数所占用的RAM单元不要重合
;          2.加载本文件的同时也加载了另外2个文件"MCOBCDADD.ASM",
;            "MCOBCDSHR.ASM",故用户在使用这个子程序时可直接调用,不必重新加载。
;          3.程序并未对原数据造成影响。

           IFNDEF       MCOBCDMUL1
            #DEFINE     MCOBCDMUL1

MCOBCDMUL   MOVF        CNT,W
            MOVWF       TEMP4       ;TEMP4作为循环计数器
            MOVWF       RLT        
            MOVF        SADR,W
            MOVWF       SOUH        ;SADR将被占用,用SOUH保护
            MOVF        SADRH,W
            ADDWF       CNT,W
            MOVWF       FSR         ;结果中间地址
LOOP38      CLRF        INDF        ;结果清0
            INCF        FSR,F
            DECFSZ      RLT,F
            GOTO        LOOP38
NEXT12      MOVF        SOUH,W
            MOVWF       FSR
            MOVF        INDF,W
            CALL        ADDSHR      ;加乘数并右移
            MOVF        SOUH,W
            MOVWF       FSR
            SWAPF       INDF,W
            CALL        ADDSHR
            INCF        SOUH,F
            DECFSZ      TEMP4,F
            GOTO        NEXT12
            RETURN                
;********************ADDSHR*****************
ADDSHR      CLRF        SOU
            ANDLW       0FH
            BTFSC       STATUS,Z
            GOTO        NEXT13
            MOVWF       RLTH        ;相加次数N在RLTH中
            MOVF        SADRH,W
            ADDWF       CNT,W
            MOVWF       SADR        ;中间地址
LOOP39      CALL        MCOBCDADD
            BTFSC       STATUS,C
            INCF        SOU,F       ;加进位
            SUBWF       DADR,F      ;恢复DADR
            DECFSZ      RLTH,F
            GOTO        LOOP39
NEXT13      MOVF        SADRH,W
            MOVWF       SADR
            BCF         STATUS,C
            RLF         CNT,F       ;传递参数
            CALL        MCOBCDSHR   ;结果带SOU右移
            BCF         STATUS,C
            RRF         CNT,F
            RETURN
            INCLUDE     MCOBCDADD.ASM
            INCLUDE     MCOBCDSHR.ASM
           ENDIF

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

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


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