为什么R格式MIPS指令中功能码不能用操作码代替?

why function code can not be instead with operation code in R-format MIPS instruction?

只有R-Format指令定义了功能码。我注意到 R 格式指令的操作代码为零。为什么要设计功能码来标识具体的操作,而不是R格式指令的操作码?

MIPS32 有大约 160 条不同的指令(根据确切的版本给出或接受一些指令),而 opcode 字段固定为 6 位。

显然你不能在 6 位中编码 160 个唯一值。因此,一些指令共享相同的操作码并使用指令字中的其他位来唯一标识指令。

对于 R-Type 指令,使用操作码 0(又名 SPECIAL)或 0x1C(又名 SPECIAL2)。指令字的 6 个最低有效位 - 称为 function 位 - 确定确切的指令。