1996 微芯 技术 公司 ds30412c-页 27
PIC17C4X
5.9 Conte
xt 节省 在 中断
在 一个 中断, 仅有的 这 returned pc 值 是 saved
在 这 堆栈. 典型地, 用户 将 wish 至 保存 关键 reg-
isters 在 一个 中断; e.g. wreg, alusta 和 这
bsr 寄存器. 这个 需要 implementation 在 软-
ware.
例子 5-1 显示 这 节省 和 restoring 的 infor-
mation 为 一个 中断 维护 routine. 这 推 和
流行音乐 routines 可以 也 是 在 各自 中断 维护
routine 或者 可以 是 subroutines 那 是 called.
取决于 在 这 应用, 其它 寄存器 将 也
需要 至 是 saved, 此类 作 pclath.
例子 5-1: 节省 状态 和 wreg 在 内存
;
; 这 地址 那 是 使用 至 store 这 cpusta 和 wreg 值
; 必须 是 在 这 数据 记忆 地址 范围 的 18h - 1fh. 向上 至
; 8 locations 能 是 saved 和 restored 使用
; 这 movfp 操作指南. 这个 操作指南 neither affects 这 状态
; 位, 也不 corrupts 这 wreg 寄存器.
;
;
推 movfp wreg, 温度_w ; 保存 wreg
movfp alusta, 温度_状态 ; 保存 alusta
movfp bsr, 温度_bsr ; 保存 bsr
isr : ; 这个 是 这 中断 维护 routine
:
流行音乐 movfp 温度_w, wreg ; restore wreg
movfp 温度_状态, alusta ; restore alusta
movfp 温度_bsr, bsr ; restore bsr
retfie ; 返回 从 中断 使能