作者icetofux (豆腐)
看板ASM
標題[問題] 8051使用中斷時,該把什麼放入堆疊?
時間Mon Nov 17 13:39:44 2008
今天遇到一個讓我有點疑惑的問題,內容如下:
ORG 00H
JMP START
ORG 0BH
JMP TIMER_SUB
START:
(主程式)
JMP START
TIMER_SUB:
(中斷副程式)
RETI
END
(1).在主程式中,會操作到A、C。
(2).而在中斷副程式中會操作到R6、R7。
進入中斷副程式後,如果沒有把A跟PSW兩個暫存器放入堆疊,就會導致主程式內容
執行錯誤,然而我在中斷副程式中完全沒動用到A、C,甚至連可能影響C的指令也沒
使用,僅僅用了INC及CJNE,且主程式的部分也完全沒有動用到R6、R7,請問為什麼
在這種情況下,進入中斷沒把A跟PSW放入堆疊會影響到主程式呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.181.135
1F:推 zstar:CJNE 會動到 C (您可以再確認看看)。是這個原因嗎? 11/17 14:56
2F:→ icetofux:查了一下cjne好像是會操作到c沒錯,我沒注意到,謝謝你。 11/17 19:33