1

命令を実装するために使用される次のコード

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の場所をどのようにマスクするかわかりません。

4

1 に答える 1