导致MIPS32架构中的寄存器值

时间:2016-02-15 17:07:01

标签: exception exception-handling mips mips32

如果原因寄存器中的值是,例如0x00000100,我如何获得生成该代码的异常类型?(来自下表)

0 Int interrupt (hardware)

4 AdEL address error exception (load or instruction fetch)

5 AdES address error exception (store)

6 IBE bus error on instruction fetch

7 DBE bus error on data load or store

8 Sys syscall exception

9 Bp breakpoint exception

10 RI reserved instruction exception

11 CpU coprocessor unimplemented

12 Ov arithmetic overfl ow exception

13 Tr trap

15 FPE fl oating point

1 个答案:

答案 0 :(得分:2)

MIPS32™架构中为程序员命名的 6.15状态寄存器(CP寄存器12,选择0)部分对此进行了描述 第三卷:MIPS32™特权资源 体系结构

  

导致注册格式

31 | 30 | 29  28 | 27 24 | 23 | 22 | 21 16 | 15  8 | 7 | 6       2 | 1 0
------------------------------------------------------------------------
BD | 0  |   CE   |   0   | IV | WP  |  0   |   IP  | 0 |  ExcCode  |  0


 IP[1:0]  Controls the request for software interrupts

在您的0x100示例中,这意味着只设置了原因寄存器的IP0(位8),这意味着原因是软件中断请求(软件中断0具体)。