⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mudiv.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;********************MUDIV********************
;本程序实现多字节无符号数除法。
;入口参数:被除数地址在SADR中,除数地址在DADR中,字节数在CNT中(小于32字节),将来
;          余数地址在SADRH中。
;出口参数:商地址在SADR中,余数地址在SADRH中,字节数在CNT中。
;占用资源:W,FSR,STATUS,020H~024H,026H,028H~02BH,两重堆栈。
;说    明: 1.除数,被除数,余数所占用的RAM单元不要重合.
;          2.程序执行后,被除数被破坏.
;          3.加载本文件的同时也加载了另外三个文件"MSHL.ASM","MUSUB.ASM",
;            "MUADD.ASM","MSHR.ASM",故用户在使用这个子程序时可直接调用,不必重
;            新加载.

           IFNDEF       MUDIV1
            #DEFINE     MUDIV1

MUDIV       MOVF        CNT,W
            MOVWF       TEMP4       ;TEMP4保存字节数
            MOVWF       TEMP3       ;TEMP3作为计数器
            BCF         STATUS,C
            RLF         TEMP3,F
            RLF         TEMP3,F
            RLF         TEMP3,F     ;字节数乘以8得到循环次数
            MOVF        SADR,W
            MOVWF       SOU         ;SOU存储被除数地址
            MOVF        DADR,W
            MOVWF       RLT         ;RLT暂存除数地址
            MOVF        SADRH,W
            MOVWF       FSR
LOOP81      CLRF        INDF
            INCF        FSR,F
            DECFSZ      TEMP4,F
            GOTO        LOOP81      ;余数清0
            CALL        MSHL        ;被除数带进位左移1位
            MOVF        SADRH,W
            MOVWF       SADR
            CALL        MSHL        ;余数左移
LOOP80      MOVF        RLT,W
            MOVWF       DADR        ;传递参数
            CALL        MUSUB
            BTFSC       STATUS,C
            GOTO        NEXT42
            MOVF        RLT,W
            MOVWF       DADR
            CALL        MUADD       ;恢复余数
            BCF         STATUS,C
NEXT42      MOVF        SOU,W       
            MOVWF       SADR
            CALL        MSHL        ;被除数和商左移
            MOVF        SADRH,W
            MOVWF       SADR
            CALL        MSHL        ;余数左移
            DECFSZ      TEMP3,F
            GOTO        LOOP80
            MOVF        SADRH,W
            MOVWF       SADR
            BCF         STATUS,C    
            CALL        MSHR        ;恢复余数
            MOVF        SOU,W
            MOVWF       SADR        ;整理出口 
            RETLW       0
            INCLUDE     "MSHL.ASM"
            INCLUDE     "MUADD.ASM"
            INCLUDE     "MUSUB.ASM"
            INCLUDE     "MSHR.ASM"
           ENDIF

⌨️ 快捷键说明

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