プロテクトモード
それによって24ビット・アドレッシングが可能になり、2 バイト(16メガバイト)のメモリにアクセス可能となる。
286のプロテクトモードではセグメントディスクリプタの「Presentビット」の属性を使用した仮想記憶管理が行われる。OSがセグメントの内容をハードディスクにスワップアウトすると、「Presentビット」を0にする。アプリケーションプログラムがこのセグメントの値をセグメントレジスタにロードすると「セグメント不在例外(Not Present)」INT#11が発生する。OSはハードディスクからセグメントの内容をスワップインし、「Presentビット」を1にする。その後アプリケーションプログラムは実行を再開する。
プロテクトモードではプログラムのバグによってプロテクトモードのルールに反する不正な値をセグメントレジスタにロードした場合「一般保護例外 (General Protetion Fault)」INT#13 が発生するが、OSやCPUは、アプリケーションプログラムが本来ロードしようとしていた正しい値がわからず、再実行ができない状態になる。
80386では、セグメントリミットが4GBのフラットモデルを使用すれば、アプリケーションプログラムがセグメントレジスタのロードを行う必要はなくなる。
ディスクリプタテーブルのエントリ内のセグメントアドレスは32ビットに拡張されている。リミット値は20ビット幅に拡張され、しかもG-ビットで倍率を指定できる。
G-ビットがゼロなら、リミット値の倍率は1であり、セグメントの大きさは1バイトから 2 バイトまでとなる。
G-ビットが1なら、リミット値の倍率は4096倍であり、セグメントの大きさは 4096 の倍数で4096バイトから4ギガバイトまでとなる。
ページングを使わない場合、リニアアドレスはそのまま物理メモリアドレスとなるが、ページングを使う場合はリニアアドレスはページング機構への入力となる。
386プロセッサではアドレスオフセットとしても32ビットの値を使用する。
286のプロテクトモードとの互換性を維持するため、D-ビットが追加されている。D-ビットがオフとなっているコードセグメントは16ビット・セグメントと解釈され、その中の命令は16ビット命令として実行される。
AVLビットは未使用でありOSで使用可能である。
386では仮想86モードだけでなく、ページング方式がプロテクトモードに追加された。ページングを使うことでシステムソフトウェアはページと呼ばれるメモリ単位毎にタスクのアクセスを制限し制御することができる。多くのOSでページングを使ってタスク毎の仮想アドレス空間を作成している。それによって、あるタスクが他のタスクのメモリを操作することを防ぐ。また、ページ単位で主記憶装置からより低速だが大容量の補助記憶装置(ハードディスクなど)へ移すこともできる。それにより、主記憶装置の物理メモリ量以上のメモリを使用可能となる。x86アーキテクチャではページの制御をページディレクトリとページテーブルという2段階の配列で行う。1ページは基本的には4キロバイトであり、ページテーブルはプロセッサによって直接読まれるため構造が決まっている。元々、ページディレクトリの大きさは1ページ、すなわち4キロバイトで、1,024個のページ・ディレクトリ・エントリ (PDE) がそこに格納されていた。PDEにはページテーブルへのポインタが含まれている。ページテーブルも本来は4キロバイトの大きさで、1,024個のページ・テーブル・エントリ (PTE) で構成されている。