Exception 如何在MIPS中打印中断指令?

Exception 如何在MIPS中打印中断指令?,exception,assembly,exception-handling,mips,break,Exception,Assembly,Exception Handling,Mips,Break,我是MIPS编程新手,我正在编写一个程序,以便更熟悉异常处理 当异常发生时,我打印出异常发生的地址,后跟异常发生的地址。打印这些消息后,程序将点击一条中断语句: break 100 然后终止程序 我的问题是,有没有一种方法可以在指令被击中时打印出来? 我想打印的内容如下: *异常地址*原因:*异常类型*中断100协处理器0中的寄存器$14保存中断代码。 将该指令加载到内存中,然后加载该字。您需要移过前6位才能得到中断码 mfc0 $a0, $14 lw $a0, ($a0) srl $a

我是MIPS编程新手,我正在编写一个程序,以便更熟悉异常处理

当异常发生时,我打印出异常发生的地址,后跟异常发生的地址。打印这些消息后,程序将点击一条中断语句:

break 100
然后终止程序

我的问题是,有没有一种方法可以在指令被击中时打印出来? 我想打印的内容如下:


*异常地址*原因:*异常类型*中断100

协处理器0中的寄存器$14保存中断代码。 将该指令加载到内存中,然后加载该字。您需要移过前6位才能得到中断码

mfc0 $a0, $14   
lw $a0, ($a0)
srl $a0, $a0, 6 
li $v0, 1   
syscall

你说的“发生的地方”是什么意思?例如
div$t0$t1$t2
导致一个被零除的异常,哪一个是“异常发生的寄存器”?@KonradLindenbach对不起,这是我的一个错误,我实际上是从协处理器0获取异常类型。我不确定我是否理解这个问题。您已经知道如何打印异常地址和异常类型,现在您想知道如何打印中断码?如何加载指令字并提取数字?@otis92第2行将加载该字,第3行将提取数字。将号码保存在$a0中,以便您可以使用“1系统调用”将其打印出来