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

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

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

;********************SSMUL********************
;本程序实现单字节有符号数乘法。
;入口参数:被乘数在SOU中,乘数在RLT中。
;出口参数:结果在SOUH:SOU中。
;占用资源:W,STATUS,023H~026H,028H,029H,一重堆栈。

           IFNDEF       SSMUL1
            #DEFINE     SSMUL1
                                   
SSMUL       MOVLW       8
            MOVWF       CNT         ;计数初值
            CLRF        TEMP2
            CLRF        SOUH
            MOVF        RLT,W
            XORWF       SOU,W
            MOVWF       TEMP1       ;暂存相乘后的符号位
            BTFSS       SOU,7
            GOTO        PLUS5
            COMF        SOU,F       ;负数取相反数
            INCF        SOU,F
PLUS5       BTFSS       RLT,7     
            GOTO        LOOP4
            COMF        RLT,F
            INCF        RLT,F       ;负数取相反数
LOOP4       MOVF        RLT,W
            RRF         SOU,F
            BTFSC       STATUS,C
            ADDWF       SOUH,F
            RRF         SOUH,F
            RRF         TEMP2,F
            DECFSZ      CNT,F
            GOTO        LOOP4
            BTFSS       TEMP1,7
            GOTO        DONE12      ;结果是正数则返回
            COMF        TEMP2,F
            COMF        SOUH,F
            INCF        TEMP2,F
            BTFSC       STATUS,Z     
            INCF        SOUH,F      ;结果为负则取绝对值
DONE12      MOVF        TEMP2,W
            MOVWF       SOU
            RETLW       0

           ENDIF

上一页123456789..12下一页  GO
阅读:
录入:JETTA

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


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