プロテクトモード
80286のコードセグメントディスクリプタのフォーマット
80386のコードセグメントディスクリプタのフォーマット
Intel 80286 Programmer's Reference Manual には以下のような記述がある。
リアルモードのコードとのバイナリ互換性の観点で、アプリケーションプログラマにとって最も明白な変化は、物理メモリが最大16MBまでアクセス可能になった点と1GBの仮想記憶であった。これには制限がなかったわけではなく、以下のような技法を使っていたアプリケーションはプロテクトモードでは動作しなかった。
セグメント計算
特権命令を使用
ハードウェアへの直接アクセス
コードセグメントの書き換え
データの実行
セグメントのオーバーラップ
インテルによって確保されているBIOS割り込みのためにBIOS関数を使用
実際にはほぼ全てのMS-DOSアプリケーションプログラムがこれらのルールのいずれかに反していた。そのため、386では仮想86モードが導入された。そういった潜在的問題はあったが、Windows 3.0 とその後継では Windows 2.x でのリアルモードの各種アプリケーションをプロテクトモードで動作させるのに互換性を利用している。