コンテンツにスキップ

リアルモード

出典: フリー百科事典『ウィキペディア(Wikipedia)』

リアルモード(real mode, real address modeとも)とは、(80286以降の)x86プロセッサの動作モードで、8086互換の動作をするモードである。

全てのx86プロセッサの起動時の動作モードであり、BIOSはこのモードで動作している。このモードにおいては、すべてのレジスタのアドレス幅がデフォルトで16ビットであり、アドレッシングの際はセグメントレジスタの値を16倍して足す単純なアドレス変換により、20ビットのアドレス空間にアクセスすることが可能である。また、割り込みベクタは、最下位アドレス固定である。

80286のリアルモードでは、過去との互換性のためにメモリ空間は1MiBであったが、21ビット目のアドレス線(A20ライン)を有効にすることで65520バイト余計に利用することができた。この領域はHMAとして使用され、80386以降でも同様に使用できる。

386以降の(IA-32)プロセッサでは、レジスタアクセス命令にプレフィックスを付けることによって、リアルモードでも32ビットのレジスタアクセスは可能である。プロテクトモード移行の際などはリアルモードで特権レジスタを初期化して移行することになる。

386には、一旦プロテクトモードに移行してセグメントリミットを設定してから、リアルモードに復帰すると、そのセグメントリミットまでの実メモリ空間にリアルモードからアクセスが可能になるというバグのような動作がある。これはUnreal mode英語版などと呼ばれる。以降のすべてのプロセッサで有効となっており、幾つかのゲームソフトやDOSエクステンダで使われた。尚、BIOSにおいてのみ使用可能なシステムマネジメントモードは同様の全てのメモリ空間にアクセス可能な環境を提供する。