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

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

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

;********************DUDIV********************
;本程序实现双字节无符号数除法。
;入口参数:被除数在SOUH:SOU中,除数在RLTH:RLT中。
;出口参数:商在SOUH:SOU中,余数在RLTH:RLT中.
;占用资源:W,STATUS,023H,024H,025H,026H,027H,028H,029H,一重堆栈。
;说    明: 用户在调用该子程序之前必须确定除数不为零,否则得不到正确结果.

           IFNDEF       DUDIV1
            #DEFINE     DUDIV1
                       
DUDIV       MOVLW       .16         ;循环16次
            MOVWF       CNT
            CLRF        TEMP2
            CLRF        TEMP1       ;TEMP2:TEMP1得到余数
            BCF         STATUS,C
            RLF         SOU,F
            RLF         SOUH,F
            RLF         TEMP1,F
            RLF         TEMP2,F
LOOP79      MOVF        RLTH,W
            SUBWF       TEMP2,W     ;检测是否余数大于除数
            BTFSS       STATUS,Z
            GOTO        NOCHK
            MOVF        RLT,W
            SUBWF       TEMP1,W     ;如果高位相等则检测低位
NOCHK       BTFSS       STATUS,C   
            GOTO        NOGO
            MOVF        RLT,W       ;余数减除数
            SUBWF       TEMP1,F
            BTFSS       STATUS,C
            DECF        TEMP2,F
            MOVF        RLTH,W
            SUBWF       TEMP2,F
            BSF         STATUS,C    ;结果中移入1
NOGO        RLF         SOU,F
            RLF         SOUH,F
            RLF         TEMP1,F
            RLF         TEMP2,F
            DECFSZ      CNT,F       
            GOTO        LOOP79
            BCF         STATUS,C
            RRF         TEMP2,W
            MOVWF       RLTH
            RRF         TEMP1,W     ;恢复余数
            MOVWF       RLT
            RETLW       0
           ENDIF

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

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


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