mcobcdrol.asm

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

ASM
34
字号
;********************MCOBCDROL********************
;本程序实现多字节压缩BCD码循环左移1位。
;入口参数: 原数据地址在SADR中,字节数在CNT中。
;出口参数: 结果首地址在SADR中,字节数在CNT中,移出位在SOU中。
;占用资源: W,STATUS,FSR,020H,023H,024H,028H,一重堆栈。
;说    明: 1.原数据将被冲掉.

           IFNDEF       MCOBCDROL1
            #DEFINE     MCOBCDROL1

MCOBCDROL   MOVF        CNT,W
            MOVWF       TEMP1
            MOVF        SADR,W
            MOVWF       FSR         ;首地址
LOOP40      MOVLW       0F0H
            ANDWF       INDF,W
            IORWF       SOU,F
            MOVLW       0FH
            ANDWF       INDF,F
            ANDWF       SOU,W
            SWAPF       INDF,F
            IORWF       INDF,F
            SWAPF       SOU,W
            ANDLW       0FH
            MOVWF       SOU         ;SOU低4位:INDF左移1位
            INCF        FSR,F
            DECFSZ      TEMP1,F
            GOTO        LOOP40
            MOVF        SADR,W      ;移出位送往最低位
            MOVWF       FSR
            MOVF        SOU,W
            IORWF       INDF,F
            RETURN
           ENDIF

⌨️ 快捷键说明

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