命令を実装するために使用される次のコード
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
私はそれらの指示のほとんどが何をしているのか知っています。
しかし、2番目のロードワードが、それ自体が命令であり、ワードではないシフターから何かをロードしている方法がわかりません。
また、バイナリに変換されたときの16進数のマスクの値は、質問にあるように、少なくとも5つの重要な場所にゼロがないため、少なくとも5つのsigの場所をどのようにマスクするかわかりません。