アセンブラを読む

ゲームプログラムで一番使われている言語はCやC++だと思います。
次点はアセンブラ、というイメージのアセンブラですが、私の場合、最近はじめて触りました。
と言っても、読むのがほとんどなのですが・・・。

それまでもVC++でデバッグしていると、ときどき目にしていたのですが、読むの大変そうだなーと思って、恥ずかしい話、読んでいませんでした。

というわけで、知識ゼロから書籍やウェブサイトを見つつコードを読んでいきました。

書いている時点で、だいぶ慣れてきたので、プログラミング言語の学習の様子を段階的に振り返ってみようと思います。


最初は、英単語を1つずつ訳していくような感じでした。
書く方は、ひらがなや漢字を書き取りをしているような感覚。
ひらがなの書き取りやってたのは、5歳ぐらいだったか・・・。
懐かしいを通り過ぎて記憶があまりない。

でも、今こうやって文章が書けるのは、書き取りをやったおかげだろうなあ。

さて、反復練習を続けることで少しずつ慣れてきた。
でも、バラバラに意味は分かるものの、まだ何のことかさっぱり分からない。
外国語で、単語は拾えても文の意味が分らないのに近いかもしれない。

もちろん、諦めるわけには行かないので、さらに読んでいく。
すると文単位で分るところがぽつぽつ出てきた。
ここはfor文だなとか、このあたりはmemcpyに近い処理をやっているなとか。

ビット演算のリハビリにもなりました。
あとは、割り算って本当にこういう風に書くんだなあと。
知識としては知っていたことでも、実際のコードを読むとまた違った印象です。

そんなこんなを繰り返していると、C言語でいうところの関数単位で読めるようになってきました。

最後に、ソースコード全体で何をやっているか、という理解をしなくてはならないのですが、アセンブラ独自のリーディング+プログラム言語共通のリーディングで読み解く。
合わせ技ですね。


ここまで学習して、読むほうは何とかなりそうですが、これをたくさん書くのは大変だろうな、と想像します。
(実際にたくさん書く機会は少なさそうですが・・・)

新しい言語を学んでいくと、プログラミングそのものに対する理解が深まります。
ひとつの言語にある程度習熟したら、1年に1つぐらい新しい言語を触ってみるのが、上達への近道ではないでしょうか。
(前も同じこと言ったかもしれません)


てんと