初心者用、難しいところはすっとばす式
★★☆☆☆
命令ごとに、説明、プログラム例、必要な場合は図を用いた解説
という構成でシンプルに記述されています。
難しい話はすっとばして、簡単な部分だけ練習しましょう、
という感覚で読むには最適の書籍です。
概してシンプルな内容なのですが、難しい部分や必要な部分で解説が
足りないことがあり、わかりやすいともわかりにくいとも言えないです。
例えば、パイプライン、スーパースカラなどの高速化の話、
マイクロオペレーションの話、メモリアドレッシングの話、
x86系CPUが引きずってきた互換性の問題に起因する不自然な仕様の話
のようなものは一切無く、アセンブラの書き方に特化しています。
アセンブラを一通り勉強して理解した部分を初心者用の本にした、
というような印象を持ってしまいました。
アセンブラ初心者が最初に読むには良いかもしれませんが、
この本を理解してアセンブラを理解した気になってしまう
読者がいそうで恐いです。
より本格的な解説書にステップアップすることをお勧めします。
初心者向けの入門書
★★★★☆
x86ファミリのCPUを対象に、NASM (The Netwide Assembler) というフリーのアセンブラを用いてアセンブリ言語の基礎を独習するための、初心者向けの教本です。既にC言語の入門書を読了した等、プログラミング言語にある程度慣れた人でないと、理解するのは難しいと思います。
本書は、加減乗除、入出力、ストリングの扱い、サブルーチン、条件分岐や繰り返し等のごく基本的なテクニックについて記してあります。作例で使用する命令は基本的なものに絞ってあります。x87 FPUの説明もごく簡単です。入出力はDOSのシステムコールを使うことが前提になっていますが、Linuxのシステムコール(直接利用は非推奨のようですが・・・)についても少し触れてあります。MMXやSSEといった技術には触れません。
作例は全て原始的な16-bit COM形式が前提になっています。16-bitアプリケーションは、x64対応、つまり64 bit版のWindowsでは動かないようなので注意して下さい(一方従来の32 bit版Windowsでは16 bitサブシステムを通じて動きます)。
PCは今やx64の時代ですが、そのx64はx86をさらに拡張したものなので、本書で得た知識は全くの無駄にはならないと思います。アセンブリ言語に興味があり、どんなものかと概観したい人にとって、本書はいい手引きになると思います。若干高価に感じられるのと、誤植が少々見られるのが残念です。
PCで気楽にアセンブラを学べる
★★★★★
PCを使って、作ったプログラムを確認しながら楽しく学べます。基礎的なことから説明されているのでわかりやすく、練習問題がちょうどいいレベルです。