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

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

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

;********************SSDIV********************
;本程序实现单字节有符号数除法。
;入口参数:被除数在SOU中,除数在RLT中。
;出口参数:商在SOU中,余数在RLT中.
;占用资源:W,STATUS,023H,024H,026H,028H,029H,02AH,一重堆栈。
;说    明: 1.用户在调用该子程序之前必须确定除数不为零,否则得不到正确结果.
;          2.余数一定为正数.
;          3.被除数绝对值一定要大于除数的绝对值,否则将出错.

           IFNDEF       SSDIV1
            #DEFINE     SSDIV1
                       
SSDIV       MOVLW       8           ;循环8次
            MOVWF       CNT
            MOVF        RLT,W
            XORWF       SOU,W
            MOVWF       TEMP3       ;暂存相除后的符号位
            BTFSS       SOU,7
            GOTO        NEXT43
            COMF        SOU,F
            INCF        SOU,F       ;负数取相反数
NEXT43      BTFSS       RLT,7
            GOTO        NEXT44
            COMF        RLT,F
            INCF        RLT,F       ;负数取相反数
NEXT44      MOVF        SOU,w       
            MOVWF       TEMP2       ;TEMP2暂存被除数
            CLRF        SOU
            CLRF        TEMP1
LOOP82      BCF         STATUS,C
            RLF         TEMP2,F
            RLF         TEMP1,F
            MOVF        RLT,W
            SUBWF       TEMP1,W     ;判断是否TEMP1>SOU
            BTFSC       STATUS,C
            MOVWF       TEMP1       ;TEMP1=TEMP1-SOU
            RLF         SOU,F
            DECFSZ      CNT,F
            GOTO        LOOP82
            MOVF        TEMP1,W
            MOVWF       RLT         ;整理参数
            BTFSS       TEMP3,7
            RETLW       0           ;结果是正数则返回
            COMF        SOU,F          
            INCF        SOU,F   
            RETLW       0
           ENDIF

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

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


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