我做了一些搜索,但似乎无法找到答案。很可能是因为我不确定如何说出来。
如果我有以下代码
for (i = 0; i < 10; i++) {
x = y >> i
...
}
有没有办法实现y&gt;&gt;我没有另一个循环的指示?
我知道这不起作用,但是说i的值存储在$ s1中,做了一些事情
srl $t3, $s5, $s1
而不是必须将$ t3设置为$ s5的值,然后循环遍历此语句
srl $t3, $t3, 1
希望这是有道理的。
基本上我每次都要通过for循环来获得y * 2 ^ -i。
感谢您提供任何帮助,或者甚至只是对这是一个重复问题的一些评论,我可以阅读充满羞耻感并得到答案。
答案 0 :(得分:1)
面向程序员的 MIPS32™架构 第二卷:MIPS32™指令集列出了以下移位指令:
SLL
Shift Word Left Logical SLLV
Shift Word Left Logical Variable SRA
Shift Word Right Arithmetic SRAV
Shift Word Right算术变量SRL
Shift Word Right Logical SRLV
Shift Word Right Logical Variable 您感兴趣的是名称中带有 Variable 的人,他们的工作方式如下:
SLLV rd, rt, rs : rd ← rt << rs
SRAV rd, rt, rs : rd ← rt >> rs (arithmetic)
SRLV rd, rt, rs : rd ← rt >> rs (logical)
仅使用rs
的低位5位,为您提供0-31范围内的移位金额。