0

8086 には 16 ビットのレジスタがあり、64K のメモリしかアドレス指定できないと聞きました。それでも、20 ビット レジスタを必要とする 1MB のメモリをアドレス指定できます。別のレジスタを使用して別の 16 ビットを保持し、16 ビット レジスタの値をこの別のレジスタの値に加算して、最大 1MB のメモリをアドレス指定できる数値を生成できるようにします。そうですか?

なぜこのように行われるのですか?32 ビットのレジスタがあるようです。これは、1MB のメモリをアドレス指定するのに十分すぎるほどです。

4

5 に答える 5

1

実際、これはレジスタの数とは何の関係もありません。重要なレジスターのサイズ。16ビットレジスタは最大2^16の値を保持できるため、64Kバイトのメモリをアドレス指定できます。

1Mをアドレス指定するには、20ビット(2 ^ 20 = 1M)が必要なので、追加の4ビット用に別のレジスタを使用する必要があります。

于 2011-08-29T18:39:52.467 に答える
1

8086 のセグメント レジスタも 16 ビット幅です。ただし、セグメント番号はベースアドレスに加算される前に 4 ビット左にシフトされます。これにより、20ビットが得られます。

于 2011-08-29T18:45:27.120 に答える
1

8088 (および拡張により 8086) は、レジスタの使用方法やメモリ アドレス指定の処理方法を含め、その祖先である 8008 と命令互換性があります。8008 は純粋な 16 ビット アーキテクチャであり、実際には 64K を超える RAM をアドレス指定できませんでした。8008 が作成された時点では、意図された用途のほとんどにこれで十分でしたが、8088 が設計される頃には、さらに多くのものが必要であることが明らかになりました。

より多くの RAM をアドレス指定する新しい方法を作成する代わりに、Intel は 8088 を 8008 にできるだけ似たものにすることを選択しました。これには 16 ビット アドレス指定の使用が含まれていました。新しいプログラムがより多くの RAM を利用できるようにするために、Intel は 8008 には存在しなかったいくつかの追加レジスタを通常のレジスタと組み合わせて使用​​する方式を考案しました。これらの「セグメント」レジスタは、8008 を対象としたプログラムには影響しません。彼らはそれらの余分なレジスタを使用せず、RAMの64kである16アドレスビットのみを「見る」だけです。新しい 8088 をターゲットとするアプリケーションは、代わりに 20 アドレス ビットを「見る」ことができ、1MB の RAM にアクセスできました。

于 2011-08-29T18:46:51.070 に答える
0

8086 には 16 個のレジスタがあり、64K のメモリしかアドレス指定できないと聞きました。それでも、20 個のレジスタを必要とする 1MB のメモリをアドレス指定できます。

レジスタの数とレジスタのを誤解しています。8086 には、8 つの 16 ビット「汎用」レジスタ (アドレス指定に使用可能) と、4 つのセグメント レジスタがあります。16 ビット アドレッシングは、2 16 B = 64 KB のメモリしかサポートできないことを意味します。セグメント レジスタからさらに 4 ビットを取得すると、合計 2 4 *64KB = 1MB のメモリをアドレス指定するために使用できる 20 ビットが得られます。

なぜこのように行われるのですか?1MB のメモリをアドレス指定するには 32 個のレジスタがあるようです。

前述のように、8086 には 32 個のレジスタがありません。最近のx86-64でさえ、32個の汎用レジスタがありません。また、レジスタの数は、マシンがアドレス指定できるメモリの量とは関係ありません。アドレスバス幅のみがアドレス指定可能なメモリの量を決定します

8086 の時点では、メモリは非常に高価であり、640 KB は、近い将来に到達するとは誰も考えていなかった膨大な量です。多額の資金を持っていても、大量の RAM を手に入れることはできないかもしれません。したがって、完全な 32 ビット アドレスを使用する必要はありません。

その上、現代の技術で 32 ビット CPU を生産することは容易ではありません。今日の 64 ビット CPU でさえ、すべての 64 ビット アドレス ラインを使用するようには設計されていません。

より多くのワイヤ、レジスタ、シリコン、そしてより広いアドレス空間を持つ CPU を設計、デバッグするために、より多くの人的努力が必要になります。70 年代から 80 年代のテクノロジのトランジスタ サイズは限られているため、実現することすらできない可能性があります。

于 2013-08-08T07:13:32.233 に答える