「機械語ではマシンの挙動は理解できない」というのをはてなの日記で書いた。この手のbinary hack ネタは意外と受けるということを発見したので「ユメのチカラ」でも取り上げる。 あらかじめ言っておくけど99.9%のプログラマにとって下記のような話を意識しなければいけないというような状況は、まあない。OSやRDBMSあるいはコンパイラの実装者のうちでもごくまれな0.1%の状況で意識しなければならないというようなお話である。 多くの人は知らなくても困らないが知っていても邪魔にはならない知識である。 ハードウェアが機械語を実行するプロセスはごくごく単純化すると下記になる。 PC(プログラムカウンタ)がさすアドレスにある命令を取り出す(フェッチという)。 フェッチした命令を解釈する(デコードという)。 命令を実行する。 PCを一つ増やす。(分岐命令ならPCをそのアドレスに書き換える) 命令の実行