在移动中崩溃,ao指令

时间:2012-08-27 10:59:54

标签: crash mips

我遇到了一个奇怪的系统崩溃。崩溃发生在MIPS processor的移动指令中。通过该指令无法访问存储器 - 用于注册移动的寄存器。我假设崩溃发生在移动指令处,因为epc保存了下一条指令的地址。

jr ra;  
move v0,a0;  
lw a0,16(a0); 

导致这种情况的原因是什么?

ePC即使在jr指令之后仍然持有第三条指令,这是由于流水线操作。

1 个答案:

答案 0 :(得分:1)

鉴于EPC在JR之后保存第三条指令的地址,则崩溃发生在该指令处。 MOVE指令位于JR的branch delay slot中,因此它在JR之前执行。 JR返回到LW指令,这是EPC告诉您发生崩溃的地方。

顺便说一句,MOVE指令不能在MIPS架构中引起任何异常(除了取指令的页面错误)。

相关问题