我正在编写要在 HDL 定义的处理器上运行的简单 SMIPS 组装测试。
例如,我有以下代码应该生成溢出异常:
main:
#Test Overflow Exception
addi $2, $0, 0xffffffff
addi $3, $2, 0x1
我知道如果处理器做正确的事情,它应该重定向到放置在 address 的处理程序0xdeadbeef
。我只知道为跳转添加标签,就像在上面添加以下代码一样:
overflowHandler:
addiu $5 $0, 1
bne $0, $5, pass
有没有办法让 overflowHandler 代码从正确的 0xdeadbeef 地址开始?main 是否从地址 0 开始?
编辑:(我可以控制 HDL 中描述的处理器的跳转地址)
由于我可以从 Bluespec 中的处理器设计描述中控制处理器跳转地址,因此我可以将其更改为可被 4 整除并跳转到更近更方便的位置。所以我的问题是:地址是否从 main 开头的地址 0x0 开始计数?什么是最好的解决方案?: 改地址跳转,还是标签来对应呢?
提前致谢,