| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| A | B | C | D | E |
| F | G | H | I | J |
| K | L | M | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
| Z | 数字 | 記号 | ||
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バイト(ヒュージ)かの違いである
コメントなどを投稿するフォームは、日本語対応時のみ表示されます