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

📄 mubcdmul.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;********************MUBCDMUL********************
;本程序实现多字节非压缩BCD码数乘法。
;入口参数:被乘数地址在SADR中,乘数地址在DADR中,字节数在CNT中(小于32字节),2W
;          个字节的结果地址在SADRH中。
;出口参数:结果在指定单元中,地址在SADR中,字节数在CNT中。
;占用资源:W,FSR,STATUS,020H~025H,027H~02BH,两重堆栈。
;说    明: 1.结果与被乘数所占用的RAM单元不要重合
;          2.加载本文件的同时也加载了另外两个文件"MUBCDADD.ASM",
;            "MUBCDSHR.ASM",故用户在使用这个子程序时可直接调用,不必重新加载。
;          3.程序并未对原数据造成影响。

           IFNDEF       MUBCDMUL1
            #DEFINE     MUBCDMUL1

MUBCDMUL    MOVF        CNT,W
            MOVWF       RLTH        ;RLTH作为循环计数器
            MOVF        SADR,W
            MOVWF       SOUH        ;SADR将被占用,用SOUH保护
            BCF         STATUS,C
            RLF         CNT,W
            MOVWF       TEMP1
            MOVF        SADRH,W
            MOVWF       FSR
LOOP35      CLRF        INDF        ;结果清0
            INCF        FSR,F
            DECFSZ      TEMP1,F
            GOTO        LOOP35
NEXT10      CLRF        SOU
            MOVF        SOUH,W
            MOVWF       FSR         
            MOVF        INDF,W      ;取出被乘数其中一位
            BTFSC       STATUS,Z
            GOTO        NEXT11
            MOVWF       TEMP4       ;相加次数N在TEMP4中
LOOP36      MOVF        CNT,W
            ADDWF       SADRH,W
            MOVWF       SADR        ;SADR指向结果中间地址
            CALL        MUBCDADD
            BTFSC       STATUS,C
            INCF        SOU,F       ;加进位
            MOVF        CNT,W
            SUBWF       DADR,F      ;乘数地址
            DECFSZ      TEMP4,F
            GOTO        LOOP36
NEXT11      MOVF        SADRH,W       
            MOVWF       SADR        ;得到移位起始地址
            BCF         STATUS,C
            RLF         CNT,F       ;移位字节数
            CALL        MUBCDSHR    ;结果带SOU右移十进制1位
            BCF         STATUS,C
            RRF         CNT,F
            INCF        SOUH,F
            DECFSZ      RLTH,F
            GOTO        NEXT10
            RETLW       0
            INCLUDE     "MUBCDADD.ASM"
            INCLUDE     "MUBCDSHR.ASM"
           ENDIF                  

⌨️ 快捷键说明

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