例如在添加时我们有添加寄存器和即时的addi,为什么在这种情况下我们不能有bnei或beqi ......
我应该回答这个问题,但我不确定......有什么帮助吗?答案 0 :(得分:5)
原因是指令编码:
ADDI
和BNE/BEQ
都是I-Type instructions。但是ADDI
指令中的立即字段用于存储加法的立即操作数,而它用于存储BEQ/BNE
的分支偏移量。
可能有MIPS汇编程序允许您在条件分支指令中使用立即操作数,但它们会将那些伪指令扩展为多个实际指令。
答案 1 :(得分:1)
在带有标志的体系结构中,分支指令通常遵循比较指令,该指令可以比较寄存器和立即数并设置适当的标志(通常称为CMP,但通常其他指令也可以设置标志)。然后分支只检查标志。
(这是在向MIPS澄清问题之前发布的,它不使用标志)
答案 2 :(得分:-1)
您不希望将16位立即值用作跳转到的地址,因为这会限制您可以跳转的位置。 MIPS具有32位地址。如果您只使用16位,则使用可能地址的一小部分。