renew.asm
来自「PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用」· 汇编 代码 · 共 29 行
ASM
29 行
;********************RENEW********************
;本程序实现中断服务程序执行或子程序返回之后对W,STATRS,FSR,PCLATH四个寄存器
;的恢复。
;入口参数:已保存在SAVEW,SAVES,SAVEF中的相关数据
;出口参数:W,STATUS,FSR
;占用资源:020H,021H,022H,02FFH,0A0H
;说明 : 1.对于SAVEW,每个块中都必须保留一个寄存器,且其地址码都必须为20H;
; 2.若用16F870/1/2/6/7,也可将SAVEW定义为070H-07FH之间的其中一个寄
; 存器,这样只用BANK0中的一个寄存器即可.
IFNDEF RENEW1
#DEFINE RENEW1
SAVEW EQU 02CH
SAVEST EQU 02DH
SAVEFSR EQU 02EH
SAVEPH EQU 02FH
RENEW CLRF STATUS
MOVF SAVEPH,W ;经过W转移
MOVWF PCLATH ;恢复PCLATH内容
MOVF SAVEFSR,W
MOVWF FSR ;恢复FSR
SWAPF SAVEST,W ;将STATUS_TEMP寄存器高低半字节交换后放入W
MOVWF STATUS ;把W内容移动到STATUS寄存器,
;(同时也把当前体恢复到原先的体上)
SWAPF SAVEW,F ;将W_TEMP内容高低半字节交换后放回
SWAPF SAVEW,W ;再次将W_TEMP内容高低半字节交换后放入W
RETURN
ENDIF
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?