[問題] 8051使用中斷時,該把什麼放入堆疊?

看板ASM (組合語言)作者 (豆腐)時間16年前 (2008/11/17 13:39), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
今天遇到一個讓我有點疑惑的問題,內容如下: 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

11/17 14:56, , 1F
CJNE 會動到 C (您可以再確認看看)。是這個原因嗎?
11/17 14:56, 1F

11/17 19:33, , 2F
查了一下cjne好像是會操作到c沒錯,我沒注意到,謝謝你。
11/17 19:33, 2F
文章代碼(AID): #198GEYK2 (ASM)
文章代碼(AID): #198GEYK2 (ASM)