2017-02-22 93 views
-1

MIPS ISA有一个'R'型指令,'R'指令的前6位有一个'操作码'字段,最后6位有一个'通道'字段。那么为什么ISA这样设计?把它们组合成一个12位的字段怎么样?为什么MIPS中'操作码'字段和'功能'字段分开?

+1

你为什么要把它们组合成12位? – 2017-02-22 14:26:35

+0

因为所有指令都必须从公共点开始解码。一个12位的操作码会咀嚼太多的其他非R类型的位,这些类型用于其他事情。 (例如)'j'和'jal'指令使用剩余的位来指定地址(即无功能字段)。在解码操作码之后,每条指令都可以以_any_方式自由解释剩余的26位。即时实例(例如'ori')使用最后的6作为16位立即操作数的一部分 –

回答

0

如果将它们合并到12位的文件中,该怎么办?

由于操作码是在MIPS一些操作相同,如果你改变了funct比你无法区分哪个操作指令中不包括,例如考虑下面的添加(R,0,32)add有操作码0funct32
而且还认为,和(R,0,36)and也已经操作码0但在这种情况下36这意味着它和AND操作不同funct

检查MIPS参考表。