31 ビット幅のレジスタがありますが、最後のアドレス 31 ビット方式として使用できる 2 つの数値の間で混乱しています。
0x7fff-fffc または 0x80000000 は、31 方式で使用できる最後のアドレスになります。
31 ビット幅のレジスタがありますが、最後のアドレス 31 ビット方式として使用できる 2 つの数値の間で混乱しています。
0x7fff-fffc または 0x80000000 は、31 方式で使用できる最後のアドレスになります。
アドレスはゼロから始まります。したがって0x7FFFFFFF
、バイトをアドレス指定している場合。0x7FFFFFFC
32ビットワードをアドレス指定している場合。
0x7fff-fffc または 0x80000000 は、31 方式で使用できる最後のアドレスになります。
どちらも - 最後のアドレスは 0x7fffffff
(not c
) です。0x80000000
すでに 32 番目のビットを設定する必要があるためです。
@mbratch が指摘する0x7ffffffc
ように、32 ビット ワードをアドレス指定している場合、または同様0x7ffffffe
に 16 ビット ワードをアドレス指定している場合は、最後のアドレスになります。
アドレスがメモリの 4 つのハンク (バイトなど) を参照するためにのみ使用されると仮定すると、7ffffffc が最後のものになります。
通常、メモリは 8 ビット バイトでアドレス指定しますが、固有の必要性はありません。アドレス可能なものには、任意の数のバイトを入れることができます。
次に、各バイトにアドレスを割り当てますが、メモリを 2 または 4 (または任意の数) のブロックでのみロードするという規則を開発しました。そのため、最後の 1 または 2 またはいくつかのアドレス行を無視するようにハードウェアを構築します。
値 80000000 は 31 ビットに収まりません。
値 7fffffff は 31 バイトに収まり、メモリの 1 バイトをアドレス指定できる場合に使用できます。
値 7ffffffc も 31 バイトに収まり、一度に 4 バイトのアラインされたチャンクでのみバイトをアドレス指定できる場合に使用されます。