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