解决方案手册中的答案对于此位域提取问题似乎是错误的。我的问题发布在下面。
提出的问题是:
找出提取a的最短MIPS指令序列 来自$ t0的字段,用于常数值i = 22和j = 5,并将字段放入$ t1 以数据表中显示的格式。
解决方案手册给出了答案:
lui $t1, 0x003f ori $t1, $t0, 0xffe0 and $t1, $t0, $t1 srl $t1, $t1, 5
我有两个问题:
sll $t1, $t1, 10
吗?答案 0 :(得分:1)
很明显,解决方案手册中的答案并不理想。
- 向右偏零。这个建议的答案如何确保所有 寄存器$ t1中“字段”右边的位都是零?
醇>
通过andi
和sll
的正确组合,我们可以将所有需要归零的位置归零。
- 右移逻辑。不是最后一条指令应该是sll $ t1,$ t1,10而不是?
醇>
很明显,这应该是sll
操作,而不是srl
操作。