「フィーリングで読むアセンブラ入門」(http://kozos.jp/books/asm/)ですが,本日無事に原稿を送付し脱稿しました.本来は年末に脱稿の予定でしたがなにせページ数が多く最終チェックに長引き,正月休みで何とかまとまりました.いろいろ情報提供していただいたかた,応援していただいたかた,どうもありがとうございました.あとは(赤入れがありますが)出版されるのを待つばかりです.

内容としては,まずは簡単なサンプルプログラム(1関数が数行程度)をコンパイル・逆アセンブルして生成されたアセンブラを読んでみて,必要に応じてバイナリエディタで機械語コードを直接書き換えたりして逆アセンブラがどのように変化するのかを見て,試して,推測して,という感じです.C言語でただ返るだけの関数とか,ただ1を返すだけの関数とか,最初はそういうのから始めて,徐々にいろいろなものを見ていきます.

あまり資料は調べずに,逆アセンブルで得られた現物をベースにして,推測とフィーリングでテキトーに読んでいきます.推測は,ホントに多いです.資料をカッチリ調べたりして読むタイプの書籍ではないです.というのはアセンブラの説明というとまんまデータシートみたいなものも多く(そして実践的な書き方がわからず理解しにくい),そういうものはすでにあるし,そういう路線にはしたくなかったからです.なにせ「気軽にパッと読む」という路線にしたかった.

なのでそういうテキトーなのが許せなかったり,ダメなひとはダメかもしれません.もしもそうだったり期待外れだったりしたらゴメンナサイ.

アセンブラは40種類について言及しました.とはいってもビット数を変化させて出力させたものや同じ系列のアーキテクチャなどもありますのでISAとしてホントに40種類というわけでもなく,またあまり深く説明せずに軽く流しているだけのものもありますが,ひとまず以下については触れています.

第1部でアセンブラの基礎として説明しているもの

PowerPC, MIPS ... 導入部分で題材として利用 (読みやすいため)
ARM, SH ... その他の固定長命令のプロセッサの例として説明
H8/300, i386 ... 可変長命令のプロセッサの例として説明

第2部でTips的に説明しているもの (ただし簡単に流しているものもあり)

SPARC, PA-RISC ... RISC系CPU
Alpha, PowerPC64, MIPS64, SH64, x86-64, IA-64, MMIX ... 64ビット・アーキテクチャ
M32R, V850, i960, MN10300, FR30, FR-V, Xtensa ... 組込み向け32ビットマイコン
AVR, Xstormy16 ... 組込み向け低スペックマイコン
68HC11, 68000 ... 昔ながらのマイコン
VAX, PDP-11 ... 往年のミニコンのCISC系コンピュータ
S/390 ... メインフレーム系
MIPS16, ARM(Thumb) ... 縮小命令セット
AVR(8bit), 68HC11(16bit), H8/300H ... ビット幅を変化させてアセンブラ生成
StrongARM, XScale ... ARM系
ARC, CRIS, M・CORE ... よく知らないアーキテクチャ (を,とりあえず読んでみた)

さらにMIST32という,つくばの学生が開発した独自アーキテクチャについても触れています.これについては伊藤君と川田君にいろいろ協力していただきました.ありがとうございました.

http://open-arch.org/

またAlpha向けビルド用パッチやPDP-11,その他アーキテクチャに関して,七誌さん(http://7shi.hateblo.jp/)にいろいろ情報をいただきました.ありがとうございました.

また写真提供で協力していただいた@hasegawさん,@syuu1228さん,OSC事務局のかたがた,ありがとうございました.CQ出版社のInterface誌とTECH-Iには執筆の上でかなりお世話になったので,参考文献にいっぱい載せさせていただきました.また秋月電子のマイコンボードやInterface誌付録基板にも感謝です.翔泳社の編集Uさんも,ありがとうございます.そしてどうぞよろしくお願いします.

今回,このような本を書くことでぼくとしてはたいへん勉強になりました.いろんな歴史的な経緯やアーキテクチャとしての思想など,勉強することがホントに多かったなあと思います.なので1年半もかかってしまったわけですが,そんなわけでまあしばらくは執筆に専念して外に出ていく活動ができていなかったので,今後はまたいろいろ復活させたいです.今回のことでいろいろネタもできたことだし,とりあえずはIT基礎技術勉強会でアセンブラ大会かな.