给出MIPS处理器设计
我在考虑将sll和srl函数添加到处理器中。我似乎对如何检索要追加的零的数量有任何直觉(从指令的[10:6]动态地从给定的shamt移位)。
有谁可以给我一个关于此的开端?谢谢!
答案 0 :(得分:0)
答案是延迟但我希望将来有人会觉得它有用。
正如您所提到的,shamt(移位量)字段中的位是5(10 - > 6)。因此,2 ** 5 = 32,它对应于可以向右/向左移位的位数。
示例:的
假设我们执行 srl (右移逻辑)操作, shamt 字段中的值为 00010 (2 in 十进制)和我们想要移位的寄存器中的值是 的 00000000000000000000000000010100 强>
该值变为2 00000000000000000000000000000101
另一个例子:
指令= srl(右移逻辑)
Shamt field = 11110 (十进制30)注册值= 11110000000000000000000000000000 结果= 00000000000000000000000000000001寄存器中的值向右移动30位 由shamt字段指示并变为1。
根据shamt字段中的值,您需要将N位移位需要向右或向左移位的寄存器;逻辑或算术。