在 MIPS 汇编中,如果操作码以 000000 开头,我们如何知道操作码指的是什么函数?

问题描述

抱歉问这个愚蠢的问题。

例如,如果我有 0x00812022 为什么是这样

SUB $a0,$a0,$at

没有

添加 $a0、$a0、$at

根据 MIPS 参考数据,它说

添加操作码:0/20 Hex

子操作码:0/22 十六进制

如何区分所有以 000000 开头的操作码?

解决方法

R 类型指令有一个 funct 字段,用于进一步指定操作。

R-type encoding

添加操作码:0/20 Hex

这意味着 op 字段为零,funct 字段为 0x20。