メモリーモデル |
辞書:電算用語の基礎知識 プログラミング用語編 (PTPROGY) |
読み:メモリーモデル |
外語:memory model |
品詞:名詞 |
x86シリーズの16ビットモード(リアルモード)に存在する、メモリーの使い方に応じたプログラミングモデル。
|
概要 |
x86は、従来の8ビットプログラミングとの互換性や効率などを配慮し、セグメント:オフセットという特殊なアドレッシング方式が採用された。
このため、他のプロセッサーでは必要ない様々な技術が必要となり、C/C++では、メモリーの使い方に応じたプログラミングモデルも用意された。これをメモリーモデルという。
特徴 |
一覧 |
規模順に、次のようなモデルに分けられる。どれに対応するかはコンパイラー次第である。
モデル | ポインター | セグメントレジスター | 最大サイズ | |
---|---|---|---|---|
コード | データ | |||
タイニーモデル | near | CS=DS=SS=ES | CS+DS+SS≦64Ki | |
スモールモデル | near | near | CS≠DS、DS=SS | CS≦64Ki、DS+SS≦64Ki |
ミディアムモデル | near | far | CS≠DS、DS≠SS | CS≦64Ki、DS≦1Mi、SS≦64Ki |
コンパクトモデル | far | near | CS≠DS、DS=SS | CS≦1Mi、DS+SS≦64Ki |
ラージモデル | far | far | CS≠DS、DS≠SS | CS≦1Mi、DS≦1Mi、SS≦64Ki |
ヒュージモデル | huge | huge |
仕様 |
最もコンパクトで、コードとデータを合わせて1セグメント(64Kiバイト)以内とする。
8ビットプログラミングとの互換性のために用意されている。
コードとデータが各nearポインター(64Kiバイト=1セグメント)で表わせる範囲でプログラミングする。
EXEファイルを作成するメモリーモデルとしては最軽量。
コードまたはデータの片方をfarポインター(20ビットのポインター)、もう片方をnearポインターで表わせる範囲でプログラミングする。
farポインターを使うメモリーモデルとしては最軽量。
コード・データ共にfarポインターで表わせる範囲でプログラミングする。大型のプログラムを開発するためのメモリーモデルである。
ラージモデルとヒュージモデルの違いは、一つの変数の最大サイズが、64Kiバイト(ラージ)か1Miバイト(ヒュージ)かの違いである
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |