📄 mror.asm
字号:
;********************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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -