新手,紧急求救,PIC双字节除法最后两句意思?

2019-03-25 19:19发布

本程序实现双字节无符号数除法。
;入口参数:被除数在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   红 {MOD}的最后几句是什么意思?为什么要右移一次呢?是不是表示余数不够商,请高手指点,谢谢
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。