5

物理アドレス = セグメント レジスタ << 4 + オフセット レジスタを使用していることはわかっています。これら 2 つのレジスタは 16 ビットですが、8086 は 20 ビット以上の操作をどのように処理できるのでしょうか?

4

2 に答える 2

5

バスインターフェイスユニットは、セグメントレジスタ、20ビットアドレスを生成する加算器、および命令プリフェッチキューで構成されています。このアドレスがBIUから送信されると、命令バイトとデータバイトがメモリからフェッチされ、先入れ先出し6バイトのキューがいっぱいになります。

「8086_Internal_Block_diagram_enotes.pdf」というドキュメントを参照してください。Googleから簡単に見つけることができます。このドキュメント、バスインターフェイスユニットに関するセクションも参照してください。

したがって、プロセッサは、必要に応じて、専用の内部20ビットレジスタを使用してこれらの20ビットアドレスを「オンデマンド」で生成します。

于 2011-05-04T08:07:45.557 に答える
1

16 ビットの数値を 4 桁左にシフトすると、基本的に 20 ビットの数値が作成されます。オフセットは、その範囲にどれだけ入るかを示します。リアル モード アドレッシングに関するウィキペディアの記事を参照してください。

例:

0x0001  << 4  ->  0x00010  (5 sets of 4 bits in each hex digit -> 20 bits)
于 2011-05-04T08:02:24.607 に答える