1-1-4
プログラムの実行とカスタマイズ さて,先ほど中断していた_A000hはどこにあるのでしょう.実はこれは,カーネルにあります.いくつかのセレクタがカーネルで用意されています. どんなセレクタがカーネルにあるのか見をつけるには,EXEHDR.EXEでKRNL386.EXEをダンプします.使用中のWindowsのKRNL386.EXEをEXEHDR.EXEにかけてみたところ,以下のようなセレクタが見つかりました.Windows 95でもWindows 98でも同じセレクタが用意されています.特に,セグメント0040hのセレクタが用意されているので,いたずらや実用的なプログラムが作れると思います.
0000 __0000H exported なかなか面白い実験ではなかったでしょうか.小さなプログラムですが,Windowsがどんな物かよくわかります.簡単なドライバを作ることも可能です.
メモリマップトI/Oを使えば速度の低下も発生しないので,簡単なドライバを作るのは簡単です.自分の目的に合わせて変更し,面白いプログラムを作ってください. <表1-2> 実行環境
*1: 16ビットコンパイラ.たとえば,VisualC++1.51など *2: DOS/Vマシン.ただし,VRAMのアドレスを書き換えれば他機種でも動作する Copyright 2000 北山 洋幸 |
|
Copyright 1997-2001 CQ Publishing Co.,Ltd.