我最近一直在学习大会,我似乎无法理解异常是如何运作的。更具体地说,我收到消息Exception 6发生并被忽略。有人可以解释这究竟是什么意思?我正在使用qtspim。
答案 0 :(得分:0)
例外可能是由硬件或软件引起的。异常就像一个跳转到新地址的未调度函数调用。 程序可能会遇到错误情况,例如 一个未定义的指令。然后程序跳转到操作系统(OS)中的代码,操作系统可以选择终止程序。异常的其他原因是除以零,尝试读取一些不存在的内存,硬件故障,调试器断点和算术溢出。
处理器记录异常的原因和PC
的值
在异常发生时。然后它跳转到异常处理函数。异常处理程序是检查的代码(通常在操作系统中)
异常的原因和适当的响应,然后返回到该程序
在异常发生之前执行。
在MIPS中,异常处理程序始终位于0x80000180
。发生异常时,无论原因如何,处理器始终跳转到该指令地址。
MIPS架构使用专用寄存器,称为原因 注册,记录异常原因。
MIPS使用另一个名为 Exception的专用寄存器
程序计数器(EPC
)在a时存储PC
的值
异常发生。处理器返回EPC
之后的地址
处理异常。这类似于使用$ra
存储旧的
jal
指令期间PC的值。