0

Branch命令について質問があります。

0x00002000 (PC) にある命令と等しくない場合、次の分岐があります。

RS(レジスタ4) = 0 RT(レジスタ3) = 7

したがって、分岐は等しくないため、次の式に従う必要があります。

if (rs!=rt) goto (PC+offset)

PC は 0x00002000 で、オフセットは 0000000000001000 です。

私が行ったことは、オフセットを 32 ビットに変換することで、左に 16 個の 0 が追加されるだけですが、2 つを追加する方法がわかりません。また、講義のスライドは特に明確ではなく、これを行う方法の例も示していません。 .. それで、どうすれば新しい PC を手に入れることができるのだろうと思っていました。

どんな助けでも大歓迎です、ありがとう!

ダン

4

1 に答える 1

0

新しい PC は、分岐命令の後の命令のアドレスにオフセットを加えたものになります。

したがって、この場合、分岐命令が 4 バイトで、オフセットが 0x1000 の場合、分岐命令の実行後、新しい PC は 0x3004 になります。

これは、PC 相対アドレス指定に関するウィキペディアのエントリですhttp://en.wikipedia.org/wiki/Addressing_mode#PC-relative

于 2012-05-25T04:08:31.007 に答える