ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
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 | 数字 | 記号 |
8ビットマイクロプロセッサーや、x86シリーズのプロセッサーの16ビット環境にある壁。
64Kiバイトを超えるメモリー範囲について、直接アクセスできない、という制限のこと。
正確にはキロではなくキビ、つまり「64Kiバイトの壁」と呼ぶべきだが、当時はまだKi(キビ)という単位がなく、このように「64Kバイトの壁」と呼ばれていた。
x86プロセッサーの16ビット環境では、16ビットのセグメントと16ビットのオフセットにより、20ビットのアドレスを表わす。
このため、セグメント変更なしの条件では、オフセット範囲の16ビット、すなわち216バイトの64Kiバイトの範囲しかアクセスできず、大きなプログラムを組むのが難しかった。これが64Kiバイトの壁である。
x86に限らず、そもそもアドレスバスが16本しかない8ビットマイクロプロセッサー(Z80などに代表される)も、同様にこの壁がある。
ちなみにこの環境下でのC言語プログラミングには特徴があり、ポインターにはfarポインターとnearポインターがある。64Kバイトの壁はnearポインターに存在する制限である。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます