9

我对汇编语言很陌生。我正在阅读有关MIPS架构的信息,但我被Register Format (R-Format)的最后一个字段所困扰。这是它的视觉表示, 在此处输入图像描述 谁能帮我解释一下第六个字段是什么意思以及我们如何计算它?提前致谢。

4

2 回答 2

9

正如描述所提到的,所有 R 型指令(例如ADD,ANDSLL其他指令)都将 6 个最高有效位(= op)设置为 0,这意味着区分它们的唯一方法是查看 6 个最低有效位(=功能)。换句话说,它们决定了指令类型。也许一个例子会有所帮助:

ADD $1, $2, $3 

拥有:

op = 0 (as all R-type instructions)
rs = 2
rt = 3
rd = 1
shamt = 0
funct = 0x20 = 0b00000100000 = 32

因此,编码将是:

0000 0000 0100 0011 0000 1000 0010 0000

例如XOR(另一种 R 类型)指令函数是0b100110 = 0x26 = 38. 因此,您通过查找要编码的指令来“计算”它。

(取自MIPS 指令参考)。

于 2011-08-03T16:09:17.040 回答
1

从下表:

http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes

几乎所有 R-Type 指令的操作码都是 00,因此该函数选择 ALU 函数。

Funct 对于共享操作码的指令,funct 参数包含必要的控制代码来区分不同的指令。6 位长(0 到 5)。示例:操作码 0x00 访问 ALU,函数选择使用哪个 ALU 函数。

于 2011-08-03T16:08:06.527 回答