我是汇编语言的新手。我正在阅读 MIPS 架构,我坚持使用寄存器格式(R格式)的最后一个字段。这是它的视觉表现, 任何人都可以帮助我第六个字段意味着什么,我们如何计算它? 提前谢谢。
答案 0 :(得分:7)
正如描述中提到的所有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
。因此,您可以通过查找要编码的指令来“计算”它。
答案 1 :(得分:1)
从下表中可以看出:
http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes
几乎所有R-Type指令的操作码都是00,所以功能选择ALU功能。
功能该 有关共享操作码的说明,请参阅funct参数 包含必要的控制代码以区分不同的 说明。 6位长(0到5)。示例:操作码0x00访问 ALU,功能选择使用哪个ALU功能。