我正在玩分支延迟插槽。在垃圾邮件上试过。
j some
j a
j b
j c
j d
ori $9, $0, 13
some:
a:
b:
c:
d:
令我惊讶的是,它将9美元改为13美元。 所以我的问题是延迟槽可以传播还是这是一个无法实现的事情并且不会发生在真正的mips32处理器上? 如果这是预期的行为,有人可以给我一些关于那里发生的事情的启示吗?
答案 0 :(得分:5)
Mips声明将分支指令放入分支延迟槽会导致不确定的结果。
答案 1 :(得分:1)
作为免责声明,我从未使用过真正的MIPS机器,但我认为使用另一个分支的分支延迟槽几乎肯定会导致问题。像MIPS这样的处理器的一种常见做法是将分支延迟槽用于无操作,例如ori $0, $0, 0
,只是为了确保不执行任何不应该执行的操作。