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

Assembly 为什么bgez和bltz在MIPS中具有相同的功能代码,assembly,mips,cpu-architecture,machine-code,Assembly,Mips,Cpu Architecture,Machine Code,bgez和bltz在MIPS中有相同的功能代码:000001,它们是从rt文件中分类的。但是,bgtz和blez有不同的功能代码。为什么设计师会这样做?只有这么多的操作码可以用6位编码。因此,在某些情况下,多条指令使用相同的操作码,指令字中的附加位用于确定指令。或作为MIPS32™ 程序员体系结构 第一卷:MIPS32简介™ 架构(Architecture)指出: 操作码值不指定指令,而是指定指令类。类中的指令是 由其他字段中的值进一步指定 然后在A.2节指令位编码表中列出这些指令类和其他相关字

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

只有这么多的操作码可以用6位编码。因此,在某些情况下,多条指令使用相同的操作码,指令字中的附加位用于确定指令。或作为MIPS32™ 程序员体系结构 第一卷:MIPS32简介™ 架构(Architecture)指出:

操作码值不指定指令,而是指定指令类。类中的指令是 由其他字段中的值进一步指定

然后在A.2节指令位编码表中列出这些指令类和其他相关字段。
因此,您将看到,例如,操作码
000001
是指令类
REGIMM
,该类中的指令由该表中的位20..16确定(左侧位20..19,顶部位18..16):


也许,
BLTZ
REGIMM
组的一部分,而
BGTZ
不是,这似乎是武断的。我真的说不出这是为什么。但最终这并不重要。重要的是,指令的编码方式有明确的规则。

只有这么多的操作码可以用6位编码。因此,在某些情况下,多条指令使用相同的操作码,指令字中的附加位用于确定指令。或作为MIPS32™ 程序员体系结构 第一卷:MIPS32简介™ 架构(Architecture)指出:

操作码值不指定指令,而是指定指令类。类中的指令是 由其他字段中的值进一步指定

然后在A.2节指令位编码表中列出这些指令类和其他相关字段。
因此,您将看到,例如,操作码
000001
是指令类
REGIMM
,该类中的指令由该表中的位20..16确定(左侧位20..19,顶部位18..16):


也许,
BLTZ
REGIMM
组的一部分,而
BGTZ
不是,这似乎是武断的。我真的说不出这是为什么。但最终这并不重要。重要的是有明确的指令编码规则。

这个问题的含义是什么?BLTZ:INSTR31..26/INSTR20..16=01/00H BGEZ:INSTR31..26/INSTR20..16=01/01H为什么BLTZ和BGEZ指令使用特殊编码?这个问题的含义是什么?BLTZ:INSTR31..26/INSTR20..16=01/00HBGEZ:INSTR31..26/INSTR20..16=01/01H为什么bltz和BGEZ指令使用特殊编码?
       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    *      *        *        *      *     *    *    *