0

この宿題を解こうとしていたのですが、解決策が思いつきませんでした。以下、問題ですが、

このコードを MIPS マシンに変換します

once_more:
    lw $5, 48($6)
    sub $5, $5, $2
    bne $5, $0, once_more

今私が直面している問題は、この問題のレジスタの値がどうあるべきかわからないことです$t0-$t7((8-15) と$s0-$s7(16-23) の値のみを調べました)。これらのレジスタの値を教えてください。前もって感謝します。

4

1 に答える 1

2

このドキュメントに基づいて、参照されているレジスターは次のとおりだと思います。

  • $5->$a1
  • $6->$a2
  • $2->$v0

$0$zeroレジスターです。

$a-レジスタは引数を保持し、$v1レジスタは結果を保持します。これらのレジスタの目的の 1 つは、syscall で使用することです。たとえば、print_intsyscall は値を$a0整数として出力します。

これらをマシン コードに変換するということは、アセンブリ ステートメントをマシンと同等のバイナリに変換する必要があることを意味します。MIPS グリーン カードは、ここで役立ちます。命令がバイナリでどのように配置されるかについては、「基本的な命令形式」セクションを参照してください。

于 2011-08-09T18:11:40.160 に答える