Я пытаюсь вызвать исключения с плавающей точкой (деление на ноль, нечетный регистр и т. Д.) И обработать их в пользовательских обработчиках.Если я включу обработчики и войду в код ядра, (причина) и (epc) будут 0x00000000.Если я не включаю обработчик, исключение корректно идентифицируется, но я не могу войти в ядро.
Перепробовал все комбинации, о которых мог подумать, плюс многочасовой поиск, но почти ничего не нашел в обработке плавающегоТочечные исключения в MARS.Не так уж много для MIPS.
.include "exceptions-s.asm"
.data :
Pi : .double 3.141592653589793238462643383279502884
.globl main
.text
main :
ldc1 $f5, Pi
Без пользовательского обработчика: «строка 18: исключение времени выполнения в 0x00400004: первый регистр должен быть четным», но не может войти в код ядра.
С пользовательским обработчиком (custom) и (epc) - 0x00000000.Может войти в ядро, но результаты бесполезны.