For faster navigation, this Iframe is preloading the Wikiwand page for 仮想86モード.

仮想86モード

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?"仮想86モード" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2020年10月)

仮想86モード(かそうはちろくモード)は、IA-32プロテクトモードの特殊なもので、16ビットx868086)のほぼ完全な仮想化の提供をハードウェア的に支援するものであることが特徴である。

概要

[編集]

仮想86モードの実行環境は、プロテクトモードで動作する仮想86モニタおよび仮想86モードで動作する仮想86タスクの2つで構成される。

仮想86タスクにおいては、セグメントレジスタを使ったアドレスが単純な16ビットシフトしたアドレスのベースに加算されたり、普通の演算命令、ジャンプ命令などはプレフィックスが無い限り16ビットに解釈されたりするなど、8086およびリアルモードに似た動作をする。ただし、仮想86モードは特権レベルが3に固定されているので、CPUの実行モードを制御する命令やソフトウェア割り込み命令、入出力命令、フラグレジスタへのアクセスなどのシステムの動作に関わる命令は制限がかかる。

制限のかかった命令は基本的にはトラップされ、仮想86モニタによって処理されるが、入出力命令は仮想86タスクの制御構造体にある許可ビットマップにより、ポートごとに直接ハードウェアにアクセスするか、トラップを起こして仮想86モニタに制御を移すかを選択できる。また、これに加えてPentium以降に実装された仮想モード拡張 (VME) を使うと、ソフトウェア割り込み命令をタスク内で処理するかどうかを割り込みの種類ごとに設定することや、フラグレジスタへのアクセスをトラップを起こさずに仮想化し、割り込み禁止区間のエミュレーションができるなど、仮想86モードの実行の効率化ができるようになっている。

使用例

[編集]

通常想定されるような、Windows上でMS-DOSアプリを動かしたり(仮想DOSマシン)、32ビットOS上でグラフィックカード上のROM BIOSにアクセスして初期化するというような用途のほか、x86の制限を緩和する目的では各種トリックが必要だったため、他にも多くの利用があった。

MS-DOSのデバイスドライバとして、仮想86モニタを含み、ページングを行うことによってEMSのインターフェイスを実装する仮想86EMSと呼ばれるものでは、実アドレスにはBIOS ROMなどが存在する640KBから1MBまでの領域を仮想化するために使われている。また、DOSエクステンダでは、プロテクトモードでプログラム本体は動作しつつ、DOSのシステムコールやBIOSのコードはリアルモード相当で動作させる必要があるため、このモードを使っている。

x64(Intel 64やAMD64)の64ビットモード(ロングモード)のもとでは、このモードは使用できない。そのため、エミュレーションなどの新たな対応が必要になっている。

具体例

[編集]
{{bottomLinkPreText}} {{bottomLinkText}}
仮想86モード
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?