>>741
> DOSが32bitコードじゃないのにその上で32bitコードが動く訳がない
ちょっと違うんだな

Windows 9xの構造を理解する上でもう一つのポイントがDOSを拡張して16bitプロテクトモードや
32bitプロテクトモードでアプリを動かせるDOSエクステンダ
ttps://ja.wikipedia.org/wiki/DOS%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%86%E3%83%B3%E3%83%80
ttps://en.wikipedia.org/wiki/DOS_extender

DOSやBIOSはリアルモードで動作してプロテクトモードでは動かずそのままアプリをプロテクトモードで
動かすわけにはいかないから、アプリをプロテクトモードで起動しDOSの機能等を利用するときなど必要に
応じてリアルモードに戻したりプロテクトメモリの管理をするプログラムが必要で、これがDOSエクステンダになる

このDOSエクステンダを使うことによってDOS上でも16bitプロテクトモードでの16MBリニアアドレス空間の
利用やdjgpp版gccのような32bitプログラムもDOS上で動かせるようになる

この仕組みを利用して動作しているのがWindows 3.0のスタンダードモード

Windows 2.xまではWindowsはDOSのリアルモードで動作するプログラムだったが、WIN.COMがDOSエクステンダの
規格の一つDPMI(DOS protected mode interface)を実装したDOSX.EXEを呼び出すことで16bitプロテクトモードで
Windowsを動かせるようになった

DOSやBIOSの機能を利用するときはリアルモードに戻って処理が終わったら16bitプロテクトモードに戻るよう
DOSX.EXEが制御している