リアルモード

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

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

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

80286では、リアルモードのままでも21ビット目のアドレス線(A20ライン)が有効であり、0xffff×16 + 0xffff = 0x10ffef までの65520バイト(約64KiB)にアクセスできた。この領域はHMAとして使用され、80386以降でも同様に使用できる。

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

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