为什么bgez和bltz在MIPS中具有相同的功能代码

时间:2016-11-13 01:06:18

标签: mips

bgez和bltz在MIPS:000001中具有相同的功能代码,它们是从rt提交的。但是,bgtz和blez具有不同的功能代码。为什么设计师会这样做?

1 个答案:

答案 0 :(得分:1)

只有6位的编码才能编码。因此,在某些情况下,多个指令使用相同的操作码,并且指令字中的附加位用于确定指令。或者作为程序员的 MIPS32™架构 第一卷:MIPS32™简介 架构表明:

  

未指定指令的操作码值指定指令类。课堂上的说明是   由其他字段中的值进一步指定。

然后,他们列出了 A.2指令位编码表部分中的那些指令类和其他相关字段。
所以,你会看到,例如操作码000001是指令类REGIMM,该类中的指令由位20..16根据该表确定(左侧位20..19,位18..16在顶部):

       000      001     010      011    100   101  110  111
0  00  BLTZ    BGEZ    BLTZL    BGEZL    *     *    *    *
1  01  TGEI    TGEIU   TLTI     TLTIU   TEQI   *   TNEI  *
2  10  BLTZAL  BGEZAL  BLTZALL  BGEZALL  *     *    *    *
3  11    *      *        *        *      *     *    *    *

BLTZ组成REGIMM组时,BGTZ可能似乎是任意的。basket <- c(4,5,10,102,10); 不是sum(basket) 组。我真的不能说为什么。最后,这并不重要。重要的是有关如何编码指令的明确规则。