ikemonn's blog

技術ネタをちょこちょこと

はじめて読む486 11章

仮想8086モード

  • プロテクトモードではセグメントの扱いが違うので、プログラムをそのまま実行できない
    • 286ではMS-DOS用のアプリを実行する際には、いったんリアルモードに戻した
      • リアルモードだとプロテクトモードの保護機能が全く使えない
    • 386では「仮想8086モード」が導入された
      • セグメントの扱い方をリアルモードと同じにしながらも、プロテクトモードの一部として実行される動作モード

VMビット

  • 仮想8086モードに移行するためには、CPUの状態を記録するEFLAGレジスタの中のVMビットを1にする

仮想8086モードにおけるセグメント機構

  • アドレス変換の仕組み
    • セグメントレジスタの値を16倍いて、オフセットアドレスを加える
  • リアルモードとの違いは、リニアアドレスが、ページング機構によって物理アドレスに変換されること

仮想8086モードと保護機能

  • 仮想8086モードではセグメント機構における保護機能は働かない
  • 常に動作レベル3の状態
    • CPUのプロテクトモードに関連する状態を変更する特権命令は実行できない

参考