mror.asm

来自「pic单片机常用的汇编程序,很有用的,分成各个小模块」· 汇编 代码 · 共 34 行

ASM
34
字号
;********************MROR********************
;本程序实现多字节二进制数循环右移1位。
;入口参数: 原数据地址在SADR中,字节数在CNT中。
;出口参数: 结果首地址在SADR中,字节数在CNT中,移出位在STATUS:C中。
;占用资源: W,STATUS,FSR,020H,023H,一重堆栈。
;说    明: 原数据将被冲掉.     

           IFNDEF       MROR1
            #DEFINE     MROR1

MROR        DECF        CNT,W
            ADDWF       SADR,W
            MOVWF       SADR
            MOVWF       FSR         ;取得最高位
            BCF         STATUS,C
LOOP10      RRF         INDF,F
            DECF        FSR,F
            DECFSZ      CNT,F
            GOTO        LOOP10
            INCF        FSR,W
            MOVWF       CNT         ;保存最低位地址
            MOVF        SADR,W
            MOVWF       FSR         ;最高位地址
            BTFSC       STATUS,C
            BSF         INDF,7
            MOVF        CNT,W
            MOVWF       SADR        ;恢复首地址
            RRF         CNT,F       ;保存STATUS:C
            DECF        SADR,W
            SUBWF       FSR,W
            RLF         CNT,F       ;恢复STATUS:C
            MOVWF       CNT         ;恢复字节数
            RETURN
           ENDIF

⌨️ 快捷键说明

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