68k汇编:CPU是否在中断时存储状态寄存器?

时间:2017-02-20 20:21:58

标签: interrupt 68000 easy68k

我无法找到有关MC68000在外部中断期间是否保留其状态寄存器/ CCR的任何信息。我想如果CPU在条件分支之前立即中断并且中断修改CCR将是一个问题。现在我的中断代码如下所示:

            ORG     $110000   ; Location of IPL6 vector
IPL6        MOVE.W  SR, -(SP) ; Is this line necessary?
            MOVE.L  D0, -(SP)
            ; Perform interrupt tasks here
            MOVE.L  (SP)+, D0
            MOVE.W  (SP)+, SR ; Is this line necessary?
            RTE               ; Return

我想知道是否需要从堆栈中推出/弹出SR的指示行,或者CPU是否在中断期间自动保存和恢复SR。

2 个答案:

答案 0 :(得分:5)

是的,CPU确实在中断时存储状态寄存器。从逻辑上讲,这是需要的,或者像你提到的问题会发生。

MOTOROLA M68000 FAMILY Programmer’s Reference Manual的第6-84页上,RTE命令显示它在其他寄存器中恢复SR,因此必须先存储它。

答案 1 :(得分:0)

你的问题实际上是以一种不吉利的方式陈述的,因为你没有通过谁(CPU或代码)陈述

,CCR 需要在中断期间保留(原因显而易见)。

但是没有,它不需要由程序员明确保存(就像你在你的例子中不必要地做的那样),因为CPU在服务中断时会自动执行此操作。