我对汇编语言很陌生。我正在阅读有关MIPS架构的信息,但我被Register Format (R-Format)的最后一个字段所困扰。这是它的视觉表示, 谁能帮我解释一下第六个字段是什么意思以及我们如何计算它?提前致谢。
user379888
问问题
9036 次
2 回答
9
正如描述所提到的,所有 R 型指令(例如ADD
,AND
和SLL
其他指令)都将 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 回答