「暇な時に、手持ちの環境でアセンブラを弄って自己満足」なx86アセンブラの世界へようこそ。
本シリーズは、少しばっかりWeb上の記事でx86アセンブラを聞きかじり、「じゃぁ手が空いた時にでもアセンブラを勉強してみるか」と思っている読者を想定しています。
従って、わざわざ「アセンブラとは何か?」「x86におけるCPUアーキテクチャ」「x86アセンブラ命令一覧」などは微塵も解説しません。その辺はWeb上、あるいは以下に示すように優れた参考書籍がありますので、自力で調べることが出来ると仮定しています。
問題は、「手持ちの環境でx86アセンブラを弄れること」これに尽きると思います。
本シリーズでは16bitDOS環境・16bitBIOS環境(Master Boot Record)・32bitWindows/Linux環境のそれぞれで、無償で入手可能なソフトウェアを使ってアセンブラプログラミングを楽しむ方法を紹介しています。
さすがにメモ帳やバイナリエディタで直接16進バイトコードを打ち込むのは著者の力量では無理ですが、OSに付属していたり、Webから無償でダウンロード出来るソフトウェアでそれなりにアセンブラプログラミングを楽しむことが出来ます。
本シリーズでは「入り口」を紹介するところまでが精一杯ですが、これらを取っ掛かりとして、より深いx86アセンブラプログラミングを楽しんで頂ければ幸いです。
本シリーズの元ネタとなった書籍:
本シリーズでは微塵も解説していない、x86CPUアーキテクチャや各種命令について:
その他、個別記事で紹介されているWeb上の記事を参照して下さい。
またMSDNのリンクについては、2010年9月19日現在でのURLとなっています。MSDNのリファレンスライブラリはVisual Studioのバージョンアップなどで不定期にページナビゲーションやURLが変更されますので、ご注意下さい。
Windows環境:
OS : Windows XP 日本語版 SP3 CPU : Pentium4 メモリ : 2GB Visual C++ 2008 Express Edition SP1 cl.exe : Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 link.exe : Microsoft (R) Incremental Linker Version 9.00.30729.01 NASM 2.09.01 Bochs-2.4.5(patch + VC++2008でデバッグ機能付きでビルド) MinGW-5.1.6, MSYS-1.0.11(Bochs-2.4.5のビルドで使用)
Linux(gcc, binutils)環境:
OS : CentOS 5.x (VMware 仮想環境内) gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48) GNU assembler 2.17.50.0.6-6.el5 20061020 binutils-2.17.50