バイナリを MIPS に変換する方法

バイナリ データは一連の 1 と 0 です。コンピュータはバイナリで読み書きします。 1 または 0 はそれぞれビットと呼ばれます。 8 ビットは 1 バイトに相当します。コンピュータのメモリの各バイトには、一意のアドレスが割り当てられています。この一意の値は、そのメモリ領域への「ポインタ」とも呼ばれます。 MIPS アセンブリは、コンピューターがコマンドを読み取って実行できるように、アセンブリ プログラムの命令をバイナリに変換するプログラミング言語です。バイナリ データを MIPS アセンブリ命令またはコードに変換することもできます。
ステップ 1
MIPS プログラムが実行するアクションを決定します。たとえば、「Add $t1, $t2, $t3」は、レジストリ 10 の内容をレジストリ 11 に追加し、結果をレジストリ 9 に格納する MIPS コードです。「宛先」は $t1、「ソース」は $ t2 で、「ターゲット」は $t3 です。
ステップ 2
「add」のエンコーディング用のバイナリを取得します。 MIPS で実行されるこの追加のバイナリ エンコーディングは、「0000 00ss ssst tttt dddd d000 0010 0000」です。加算に関係するポインターは、$9、$10、および $11 です。したがって、5 つの「s」ビットの 2 進数はレジスタ 9 用であり、2 進数で「10001」と表されます。 「t」の 5 ビットはレジスタ 10 用で、2 進数で「10010」と表されます。また、「d」ビットは、11 を表す「10011」として表されます。
ステップ 3
この情報を使用して、バイナリ文字列「0000 0010 0011 0010 1001 1000 0010 0000」を指定している場合、この同じ方法を使用して MIPS に戻すことができます。 MIPS の add メソッドのバイナリ エンコーディングに基づいて、最初の 6 つの値がゼロで、最後の 11 が「000 0010 0000」であることがわかります。
ステップ 4
7桁目から5ビット数えます。その値は「ソース」レジストリの「10 001」です。 5 ビットの 2 番目の文字列は「ターゲット」の値で、次の 5 ビットは「宛先」です。レジストリ 12 が「宛先」として参照されている場合、バイナリ文字列は次のようになります:「0000 0010 0011 0010 1010 0000 0010 0000」 ここで、「1010 0」は 12 の値です。
ヒント
値 "$t0–$t7" は、8 ~ 15 のメモリ位置を参照します。 MIPS のコード "$t2" は、メモリ位置 10 を参照しています。