sudiv.asm

来自「微芯公司的PIC子程序库及运算平台」· 汇编 代码 · 共 28 行

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

           IFNDEF       SUDIV1
            #DEFINE     SUDIV1
                        
SUDIV       MOVLW       8           ;循环8次
            MOVWF       CNT
            MOVF        SOU,w        
            MOVWF       TEMP1       ;TEMP1暂存被除数
            CLRF        SOU
            CLRF        SOUH
LOOP78      BCF         STATUS,C
            RLF         TEMP1,F
            RLF         SOUH,F
            MOVF        RLT,W
            SUBWF       SOUH,W      ;判断是否SOUH>RLT
            BTFSC       STATUS,C
            MOVWF       SOUH        ;SOUH=SOUH-RLT
            RLF         SOU,F
            DECFSZ      CNT,F
            GOTO        LOOP78
            RETLW       0
           ENDIF

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?