0

たとえば、ラベルがどこにある j ラベルが与えられた場合、0x004000b0どのように機械語に変換しますか?

オペコードx02とターゲット アドレスは 26 ビットです。シミュレートしてマシンコードを取得しようとしましたが0810002c、手で計算することはできません。

4

1 に答える 1

1

MIPS命令リファレンスから、129ページ:

これは PC 領域ブランチです (PC 相対ではありません)。有効なターゲット アドレスは、「現在の」256 MB にアラインされた領域にあります。ターゲット アドレスの下位 28 ビットは、左に 2 ビット シフトされた instr_index フィールドです。残りの上位ビットは、遅延スロット内の命令のアドレスの対応するビットです (分岐自体ではありません)。

したがって、0x4000B0 にジャンプする場合は、2 ビット右にシフトして 0x10002C を取得します。これはジャンプ命令の下位 26 ビットを形成し、上位 6 ビットは 0b000010 であり、全体のオペコードは 0x810002C になります。

于 2012-10-22T00:39:08.250 に答える