【发布时间】:2009-06-02 03:36:24
【问题描述】:
以下代码用于实现指令
sllv $s0, $s1, $s2
它使用寄存器 $s2 中值的最低有效 5 位 指定金额寄存器 $s1 应左移:
.data
mask: .word 0xfffff83f
.text
start: lw $t0, mask
lw $s0, shifter
and $s0,$s0,$t0
andi $s2,$s2,0x1f
sll $s2,$s2,6
or $s0,$s0,$s2
sw $s0, shifter
shifter: sll $s0,$s1,0
我知道大部分指令在做什么。
但是我不明白第二个加载字是如何从移位器加载一些东西的,它本身是一个指令而不是一个字。
正如问题所说,当转换为二进制时,十六进制掩码的值在至少 5 个重要位置没有零,所以我不确定它将如何屏蔽至少 5 个 sig 位置。
【问题讨论】:
-
你需要告诉我们这是什么架构和处理器。没有它,我们无法告诉您它的作用。
-
如果您的问题更具体,您可能会获得更多帮助。您是否有难以理解的特定说明?
-
您熟悉这些说明吗?真诚地尝试尽可能多地进行翻译会大有帮助
-
它适用于 MIPS 架构 en.wikipedia.org/wiki/MIPS_architecture
-
我知道这些指令中的大多数在做什么。然而,我不明白第二个加载字是如何从移位器加载一些东西的,它本身是一个指令而不是一个词。此外,当转换为二进制时,十六进制掩码的值在至少 5 个重要位置没有零,正如问题所说,所以我不确定它将如何屏蔽至少 5 个 sig 位置