bgez和bltz在MIPS:000001中具有相同的功能代码,它们是从rt提交的。但是,bgtz和blez具有不同的功能代码。为什么设计师会这样做?
答案 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)
组。我真的不能说为什么。最后,这并不重要。重要的是有关如何编码指令的明确规则。