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

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

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

;********************MUBCDDIV********************
;本程序实现多字节非压缩BCD码除法。
;入口参数:被除数地址在SADR中,除数地址在DADR中,字节数在CNT中(小于32字节),分配给
;          余数的地址在SADRH中。
;出口参数:商地址在SADR中,余数地址在SADRH中,字节数在CNT中。
;占用资源:W,FSR,STATUS,020H~02BH,两重堆栈。
;说    明: 1.除数,被除数,余数所占用的RAM单元不要重合.
;          2.程序执行后,被除数被破坏.
;          3.加载本文件的同时也加载了另外四个文件"MUBCDSUB.ASM",
;            "MUBCDADD.ASM","MUBCDSHL.ASM","MUBCDSHR.ASM"故用户在使用这个
;            子程序时可直接调用,不必重新加载.

           IFNDEF       MUBCDDIV1
            #DEFINE     MUBCDDIV1

MUBCDDIV    MOVF        CNT,W
            MOVWF       RLTH        ;RLTH保存字节数
            MOVWF       TEMP4       ;TEMP4作为计数器
            MOVF        SADR,W
            MOVWF       SOUH        ;SOUH存储被除数地址
            MOVF        DADR,W
            MOVWF       RLT         ;RLT暂存除数地址
            MOVF        SADRH,W
            MOVWF       FSR
LOOP87      CLRF        INDF
            INCF        FSR,F
            DECFSZ      RLTH,F
            GOTO        LOOP87      ;余数清0
            CLRF        SOU
            CALL        MUBCDSHL    ;被除数带SOU左移十进制1位
            MOVF        SADRH,W
            MOVWF       SADR
            CALL        MUBCDSHL    ;余数左移
            CLRF        SOU
NEXT52      MOVF        RLT,W
            MOVWF       DADR        ;传递参数
            CALL        MUBCDSUB
            BTFSS       STATUS,C
            GOTO        NEXT53
            INCF        SOU,F
            GOTO        NEXT52
NEXT53      MOVF        RLT,W
            MOVWF       DADR
            CALL        MUBCDADD    ;恢复余数
            MOVF        SOUH,W
            MOVWF       SADR
            CALL        MUBCDSHL    ;被除数带SOU左移十进制1位
            MOVF        SADRH,W
            MOVWF       SADR
            CALL        MUBCDSHL    ;余数左移
            DECFSZ      TEMP4,F
            GOTO        NEXT52
            CALL        MUBCDSHR    ;恢复余数
            MOVF        SOUH,W
            MOVWF       SADR        ;整理参数
            RETLW       0
            INCLUDE     "MUBCDSHL.ASM"
            INCLUDE     "MUBCDADD.ASM"
            INCLUDE     "MUBCDSUB.ASM"
            INCLUDE     "MUBCDSHR.ASM"
           ENDIF

 

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

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


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