airwill 发表于 2014-2-16 15:22 
是的, Keil C编译器会自动生成现场保护的指令. 并且智能地只生成中断里使用到的寄存器.
可以打开编译生成的 ...
今天按照你的引导看了一下,在中断函数里面多了压栈和出栈的动作,谢谢。
如下面为rtc的中断响应
; FUNCTION rtc_interrupt (BEGIN)
0000 C0E0 PUSH ACC
0002 C0F0 PUSH B
0004 C083 PUSH DPH
0006 C082 PUSH DPL
0008 C085 PUSH DPH1
000A C084 PUSH DPL1
000C C092 PUSH DPSEL
000E 5392FE ANL DPSEL,#0FEH
0011 C0D0 PUSH PSW
0013 75D000 MOV PSW,#00H
0016 C000 PUSH AR0
0018 C001 PUSH AR1
001A C002 PUSH AR2
001C C003 PUSH AR3
001E C004 PUSH AR4
0020 C005 PUSH AR5
0022 C006 PUSH AR6
0024 C007 PUSH AR7
---------------上面是入栈,下面是出栈,略去代码部分,----------------------------
002F D007 POP AR7
0031 D006 POP AR6
0033 D005 POP AR5
0035 D004 POP AR4
0037 D003 POP AR3
0039 D002 POP AR2
003B D001 POP AR1
003D D000 POP AR0
003F D0D0 POP PSW
0041 D092 POP DPSEL
0043 D084 POP DPL1
0045 D085 POP DPH1
0047 D082 POP DPL
0049 D083 POP DPH
004B D0F0 POP B
004D D0E0 POP ACC
|