0

31 ビット幅のレジスタがありますが、最後のアドレス 31 ビット方式として使用できる 2 つの数値の間で混乱しています。

0x7fff-fffc または 0x80000000 は、31 方式で使用できる最後のアドレスになります。

4

3 に答える 3

2

アドレスはゼロから始まります。したがって0x7FFFFFFF、バイトをアドレス指定している場合。0x7FFFFFFC32ビットワードをアドレス指定している場合。

于 2013-10-15T20:12:10.923 に答える
1

0x7fff-fffc または 0x80000000 は、31 方式で使用できる最後のアドレスになります。

どちらも - 最後のアドレスは 0x7fffffff(not c) です。0x80000000すでに 32 番目のビットを設定する必要があるためです。

@mbratch が指摘する0x7ffffffcように、32 ビット ワードをアドレス指定している場合、または同様0x7ffffffeに 16 ビット ワードをアドレス指定している場合は、最後のアドレスになります。

于 2013-10-15T20:11:28.570 に答える
1

アドレスがメモリの 4 つのハンク (バイトなど) を参照するためにのみ使用されると仮定すると、7ffffffc が最後のものになります。

通常、メモリは 8 ビット バイトでアドレス指定しますが、固有の必要性はありません。アドレス可能なものには、任意の数のバイトを入れることができます。

次に、各バイトにアドレスを割り当てますが、メモリを 2 または 4 (または任意の数) のブロックでのみロードするという規則を開発しました。そのため、最後の 1 または 2 またはいくつかのアドレス行を無視するようにハードウェアを構築します。

値 80000000 は 31 ビットに収まりません。

値 7fffffff は 31 バイトに収まり、メモリの 1 バイトをアドレス指定できる場合に使用できます。

値 7ffffffc も 31 バイトに収まり、一度に 4 バイトのアラインされたチャンクでのみバイトをアドレス指定できる場合に使用されます。

于 2013-10-15T20:12:11.630 に答える