雑記
アセンブラのこと
最終更新:
匿名ユーザー
-
view
最近になってなぜかアセンブラの本が、書店に多くなってきたような気がする。いやアセンブラを学ぼう、っていうのは良いことだとは思うんですけどね、ええ。
でもね、本屋に並んでるアセンブラの本って、本当にアセンブラの勉強の役に立つの??って言うのが正直な感想なんです。
どんな本が並んでいるかというと、まず①アセンブラといいつつPCゲームを改造する本。②80X86およびPentium系CPUのアセンブラの本。③情報処理試験向けCASLの本。④電子工作向けPICやH8アセンブラの本。
番号が若い順に多い。
番号が若い順に多い。
①は、論外。
②は、まあとにかくほとんどのご家庭のPCがWindowsマシンなわけで、プラットフォームは、ある。でもWindowsプログラムをアセンブラで書くっていうのは、少なくともアセンブラ初心者にはオススメできないと思うんですが。
③は、まあ学習用としてはいいのかな??シミュレータ等もVector行ったら充実してるし。でも基本的な機能過ぎて、まるで標準関数使ってC言語のプログラムをさせられているような。「教科書的」すぎる、と言ったら判ってもらえるだろうか?
④はアセンブラに関しては一番かも。でもその前提に「電子工作」があるのは、高校でラジオ作っていらい半田ごて握ったことないよ、なんて向きには敷居が激しく高すぎる。
そんなこんなで個人的に一番オススメなアセンブラの入門書?は『Linuxから目覚めるぼくらのゲームボーイ』。以下、理由。
①80X86系より命令系統が判りやすい
②入出力が限られていて、機器の構成もコンパクトで理解しやすい。
③環境が整っているのですぐに始めやすい。
①80X86系より命令系統が判りやすい
②入出力が限られていて、機器の構成もコンパクトで理解しやすい。
③環境が整っているのですぐに始めやすい。
特に③の理由。この本ではゲームボーイと言いつつゲームボーイアドバンスでの開発を行うわけですが(笑)、持ってなくてもVisualBoyAdvanceという優秀なエミュレータがあるおかげですぐに動かせる。
VisualBoyAdvanceは優秀なエミュレータで、リアルタイムのメモリダンプ機能やレジスタの値の表示などが行える。これってすごく使える!いやマジで。VisualBoyAdvanceを単にPCに吸い出したGBAのゲームやるだけに使っているのは本当にもったいないです。
しかも、コンパイラ・アセンブラもDevkitAdvanceやGNUのクロス環境(ARM7用)が使えるので、全てタダで始めることができる。
何より、GBAの実機を持っていたら本に付属のUSBケーブルで、実際にGBA上で自作プログラムが動く!
何より、GBAの実機を持っていたら本に付属のUSBケーブルで、実際にGBA上で自作プログラムが動く!
こんなに贅沢な学習環境って無いですよ。ホントに。
ひとつ難点を言えば、ARMというマイコンの命令ってちょっとだけ癖があることだけど、もともとアセンブラってそんなもんだし(笑)
ARM系のチップは携帯電話などにも使われているのでその性能は折り紙つきです。その意味では組み込みを目指す人なんかも入門にはいいかも。
この本が無かったら、アセンブラの学習環境はZ80とそのエミュレータだ、って言いたかったところだけど(笑)『Z80マシン語秘伝の書』なんかも読むといいですよ。アセンブラと言う環境でいかに目的のルーチンを作るか、というヒントになると思います。