📄 save.asm
字号:
;********************SAVE********************
;本程序实现中断服务程序执行或子程序调用之前对W,STATRS,FSR三个寄存器的保护。
;入口参数:W,STATUS,FSR
;出口参数:相关数据已保存在SAVEW,SAVES,SAVEF中
;占用资源:020H,021H,022H,02FH
;说明 : 1.对于SAVEW,每个块中都必须保留一个寄存器,且其地址码都必须为20H;
; 2.若用16F870/1/2/6/7,也可将SAVEW定义为070H-07FH之间的其中一个寄
; 存器,这样只用BANK0中的一个寄存器即可.
IFNDEF SAVE1
#DEFINE SAVE1
SAVEW EQU 02CH
SAVEST EQU 02DH
SAVEFSR EQU 02EH
SAVEPH EQU 02FH
SAVE MOVWF SAVEW ;复制W到它的临时备份寄存器W_TEMP中
SWAPF STATUS,W ;将STATUS寄存器高低半字节交换后放入W
CLRF STATUS ;不管当前处在哪个体,都设置体0作当前体
MOVWF SAVEST ;保存STATUS到体0上的临时寄存器STATUS_TEMP
MOVF FSR,W
MOVWF SAVEFSR ;保存FSR
MOVF PCLATH,W ;把寄存器PCLATH内容复制到W中
MOVWF SAVEPH ;经W将PCLATH内容转到临时寄存器PCLATH_TEMP
RETURN ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -