3

次の質問のコンテキストで、高アドレスと低アドレスの意味を説明できる人はいますか?:

定義上、「上位」アドレスは符号なしの大きな数値であり、「下位」アドレスは符号なしの小さな数値です。

beq物理メモリアドレスに常駐する (branch on equal) 命令を 使用して制御を移すことができる最上位のアドレスは0x320ACB48?

4

1 に答える 1

2

答えは、特定の MIPS チップとその MMU (存在する場合) によって異なります。

32 ビット命令の有効なアドレスは 0 ~ 4GB-4 です。ただし、メモリが範囲全体に存在しない場合、またはメモリ マップ デバイスが存在する場合、または仮想アドレスから物理アドレスへの変換が有効になっている場合は、任意の場所または意味のある場所でコードを実行することはできません。仕方。

メモリによってバックアップされていない場所に制御を移すと、ガベージが実行されます。同じことが、一部のメモリ マップド デバイスのレジスタまたはデータ バッファを表す場所に制御を転送する場合にも当てはまります。

アドレスの特定の領域へのアクセスを制限したり、そこでの実行を禁止したりするようにページ変換が設定されている場合、それらの領域では何も実行できません。

現在、それ自体が配置beqされている場所 ( ) から制御を移すことができる距離に関しても制限beqがあります。beq+/- 約 2 17バイト (=128KB) の位置にのみ制御を転送できます。

したがって、理論的にはbeq、0x320ACB48 にある場所は、0x320ACB48 + 4 - 32768*4 から 0x320ACB48 + 4 + 32767*4 までの任意の場所 (4 の倍数) に制御を移すことができます。

がアドレス 0 の近くに配置されている場合beq、CPU がアドレスのラップを禁止していない限り、制御を 4GB 近くに移すことができる場合があります。同様に、beqが 4GB ポイントに近い場合は、アドレス ラッピングが CPU によって禁止されていない限り、制御をアドレス 0 付近に転送できる可能性があります。

于 2013-03-06T02:38:13.753 に答える