Unreal modeとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Unreal modeの意味・解説 

Unreal mode

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/02/23 15:28 UTC 版)

Unreal modeとはIA-32プロセッサ(及び286)のリアルモードの特殊な状態で、通常は使用できない32ビットのリミットなどを設定した状態のことである。Unreal modeという名前ではあるが、これは俗称で、またx86の別のCPUモードではなくあくまでリアルモードの一種である。

動作原理

80286とそれ以降のx86プロセッサは、効率的な動作のためにリアルモードであってもセグメントレジスタそのものではなくセグメントのデスクリプタキャッシュ内のベースアドレス、サイズ、その他の属性を使用する。そのため、デスクリプタキャッシュ内の値を変更すれば、リアルモードからアクセスできるメモリ領域を変更することができる。

80386以降ではセグメントリミットを4GBに設定すればリアルモードのままで4GBのメモリにアクセスできる。いささか裏技的ではあったが、広く使われたため、それ以降のCPUでも使用可能なまま残された[1]。しかし、Unreal modeはプロテクトモードのOSとは互換性がない。

セグメントレジスタの構造[2]

可視部 ディスクリプターキャッシュ部
セグメントレジスタ ベースアドレス 属性 セグメントリミット

Unreal modeを有効にする方法

286では、非公開命令のLOADALLを使用してセグメントデスクリプタ内のベースアドレスを変更することで16MBまでのメモリにアクセスできる。

386でもLOADALL命令を使う手法は使用できる。しかし、486(以降)ではLOADALL命令は廃止された。

386以降(IA-32プロセッサ)ではLOADALLではなく別の手法を使うこともできる。一旦プロテクトモードに入り、リミットを4GBに設定したセレクタを 作成し、そのセレクタをセグメントレジスタにロードする。そのあとリアルモードに戻るとリミットが4GBのセグメントを使用できる。アドレスサイズプリフィックスを使えば、リアルモードでもDS:[EBX]のように32ビットレジスタを指定することで0xFFFF(64KB)を超えるメモリにアクセスできる。

脚注

  1. ^ Cryptographic Security Architecture: Design and Verification. Springer Science & Business Media. (2004). p. 58. ISBN 978-0-387-95387-8. https://archive.org/details/springer_10.1007-b97264 2017年1月4日閲覧. "[…] Unreal mode became so widely used […] that Intel was forced to support it in all later processors, although its presence was never documented […]" 
  2. ^ The LOADALL Instruction by Robert Collins



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語
  •  Unreal modeのページへのリンク

辞書ショートカット

すべての辞書の索引

「Unreal mode」の関連用語

Unreal modeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Unreal modeのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのUnreal mode (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2026 GRAS Group, Inc.RSS