MARS MIPS浮点异常自定义处理程序不起作用-没有处理程序起作用

时间:2019-05-01 01:54:10

标签: exception floating-point mips mars-simulator

我试图引起浮点异常(除以零,奇数寄存器等),并在自定义处理程序中处理它们。如果包含处理程序并进入内核代码,则(cause)和(epc)为0x00000000。如果我不包含处理程序,则可以正确识别异常,但无法进入内核。

我尝试了所有我想到的所有组合,并花费了许多时间进行搜索,但几乎找不到关于在MARS中处理浮点异常的任何信息。对于MIPS来说,也没有那么多。

.include "exceptions-s.asm"

    .data :
Pi : .double 3.141592653589793238462643383279502884
    .globl main
    .text
main :
    ldc1 $f5, Pi

没有自定义处理程序,“第18行:运行时异常位于0x00400004:第一个寄存器必须为偶数”,但无法进入内核代码。

使用自定义处理程序,(自定义)和(epc)为0x00000000。可以进入内核,但是结果没有用。

0 个答案:

没有答案