我想在中断返回时切换正常程序流:
START
SEI
LDX #<IRQ
LDY #>IRQ
STX $FFFE
STY $FFFF
CLI
LOOP1
INC $D020
JMP LOOP1
LOOP2
INC $D021
JMP LOOP2
IRQ
STA SAVEA+1
STX SAVEX+1
STY SAVEY+1
// Some Routines
LDA #$00
PHA
LDA #<LOOP2
PHA
LDA #>LOOP2
PHA
SAVEA
LDA #$00
SAVEX
LDX #$00
SAVEY
LDY #$00
RTI
我根据这个来源编写了以下代码: http://6502.org/tutorials/interrupts.html#1.3
但是PHA会导致崩溃,如何在中断中将正常流程从LOOP1切换到LOOP2?
PHA; TXA; PHA; TSX
指令,并通过索引X
修改储存在栈中的返回地址,在恢复寄存器并执行RTI
指令前完成修改。 - Weather Vane