func在R-Format指令集中意味着什么?

时间:2011-08-03 15:56:35

标签: architecture assembly mips

我是汇编语言的新手。我正在阅读 MIPS 架构,我坚持使用寄存器格式(R格式)的最后一个字段。这是它的视觉表现, enter image description here 任何人都可以帮助我第六个字段意味着什么,我们如何计算它? 提前谢谢。

2 个答案:

答案 0 :(得分:7)

正如描述中提到的所有R类型指令(例如ADDANDSLL和其他指令)将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 Instruction Reference)。

答案 1 :(得分:1)

从下表中可以看出:

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

几乎所有R-Type指令的操作码都是00,所以功能选择ALU功能。

  

功能该       有关共享操作码的说明,请参阅funct参数   包含必要的控制代码以区分不同的   说明。 6位长(0到5)。示例:操作码0x00访问   ALU,功能选择使用哪个ALU功能。