2

例如在 add 我们有 addi 用于添加寄存器和立即数,为什么在这种情况下我们不能有 bnei 或 beqi...

我应该回答这个问题,但我不确定......有什么帮助吗?

4

3 回答 3

5

原因是指令编码:

ADDI和都是I- Type指令BNE/BEQ。但是,指令中的立即数字段用于存储加法的立即数操作数,而在.ADDIBEQ/BNE

可能有 MIPS 汇编器允许您在条件分支指令中使用立即操作数,但它们会将这些伪指令扩展为多个实际指令。

于 2013-05-26T14:50:53.480 回答
1

在带有标志的体系结构中,分支指令通常遵循比较指令,该指令可以比较寄存器和立即数并设置适当的标志(通常称为 CMP,但通常其他指令也可以设置标志)。然后分支只检查标志。

(这是在向 MIPS 澄清问题之前发布的,它不使用标志)

于 2013-05-26T14:37:13.540 回答
-1

您不想使用 16 位立即数作为跳转地址,因为这限制了您可以跳转的位置。MIPS 有 32 位的地址。如果您只使用 16 位,那么您使用的可能地址的一小部分。

于 2014-03-17T13:36:25.623 回答