メモリーモデル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/17 03:54 UTC 版)
「Intel 8086#プログラミングモデル」を参照 8086のC言語における「メモリーモデル」は、以上のような命令セット・アーキテクチャ的な仕様に対応するための規約のようなもので、「複数のオブジェクトファイル間でセグメントを共有する際の規約」とか「セグメントの使用法や結合法が規定されている」といったような一般的な概念で説明されるようなものではない。前の節で説明でわかるように、8086ではセグメントを跨がずにアクセスできるメモリの範囲は64KiB(65,536バイト)であるので、コード量あるいはデータ量がその範囲に収まるならば収めてしまい、暗黙のセグメント指定のみでアドレッシングするようなコードにすると、ビルドされたプログラムが効率的になる。そこで、明示的にfarなどと指定されないアドレスについて、コードとデータのそれぞれのどちらも64KiB以内の「スモール」、片方だけが64KiBより大きい「コンパクト」と「ミディアム」、両方とも64KiBより大きい「ラージ」、さらに、1個の配列などが64KiBより大きくなることも考慮する「ヒュージ」のような各EXEファイルと、COMファイルのようにコードもデータも同一の64KiBに入る「タイニー」、といったようなモデルに分けられており、アプリケーションの規模等によって使い分けていた、というのが、8086のC言語における「メモリーモデル」である。
※この「メモリーモデル」の解説は、「セグメント方式」の解説の一部です。
「メモリーモデル」を含む「セグメント方式」の記事については、「セグメント方式」の概要を参照ください。
- メモリーモデルのページへのリンク