2016-04-30 79 views
0

这些值加载到寄存器中MIPS中断不会跳转到中断处理程序

lui $t0, 0xffff    # Loads receiver control 
li $t3, 0x00000002   # Loads the interrupt enable bit 

此功能允许输入MMIO中断。它会循环直到游戏结束,并等待直到按下一个键。这将触发中断处理程序。

main: 
beq $s7, 1000, checkOver # Every 1000 loops checks to see if the game is over 
sw $t3, ($t0)    # Enables interrupts 
addi $s7, $s7, 1    # Adds one to the loop iterator 
j main     # Loops in main until the game is over 

然而,当我按下一个键我得到这个错误,而不是

错误在C:\用户****线41:运行时异常在0x00400038:外部中断

我得到这个错误而不是去我的中断处理程序,我写在.ktext中的代码。谁能帮忙?

回答

1

我想通了,我会在这里发布它,以防万一任何人有同样的问题。我认为.ktext在内存中有一个定义的地址,但是当你定义.ktext时,你需要对这个位置进行硬编码。在那里我有

.ktext 

我应该把

.ktext 0x80000180 

然后代码正确跳转到中断处理程序。花了我一段时间才找到。

+0

这是为'mars'模拟器[和地址可以重新配置]。这里的文件:http://courses.missouristate.edu/KenVollmar/mars/Help/MarsExceptions.html –