• 106月

    本屋さんで「機械のコトバ」という本を見つけました。

    4839917620 機械のコトバ
    渡辺 徹
    毎日コミュニケーションズ 2005-06

    by G-Tools

    ここでいう「機械のコトバ」とは、機械語のこと。
    ご存じの方も多いと思いますが、機械語というのは、CPUが直接解釈・実行できる
    言語のことです。
    厳密にはアセンブリ言語とは少し違うんですが、「アセンブラ」なんて呼ばれることも。

    私も某社へ入社当時は、デバイスドライバや常駐プログラムなどをアセンブラで書いた
    記憶があります。
    最近は家庭用ゲーム機用ソフトの一部など、使われることは極端に少なくなりましたが、
    CPUを動作させるための基礎ではあります。

    ちょうどMacがPowerPCからIntelへ移行しようとしていますが、CPUが違えば、CPUが
    理解する機械語も、当然異なってくるわけです。
    そんな機械語のことを、できるだけ平易に、かつ、楽しく紹介してくれています。

    機械語というのは、基本的には全て数字、それも最終的には2進数で表記
    されます。
    この本でも、2章全体を使って「みんな数字で表してみる」ことを説明してます。

    数字はもちろん、文字、画像、音など、全部数字で表現するんですから、
    ある意味、すごいですよね。

    ちなみに、これに関連して「エンディアン」という単語を耳にすることがあるかと。
    これは数値をメモリ中へ格納する時の、格納の向きのこと。

    たとえば、普段、私たちは「1万」という値は「10000」と書きますよね。
    言ってみれば、これはビッグエンディアンということになります。
    逆にたとえば「00001」と格納するような方法をリトルエンディアンといいます。

    PowerPCや680×0などは基本的にはビッグエンディアン、Pentiumなどの
    x86系CPUはリトルエンディアンです。
    G4はそのどちらにも対応していたんですが、G5がビッグエンディアンのみの対応で、
    その影響もあって、Virtual PCのG5対応が遅れたことはご記憶の方もいらっしゃるかと。

    ちなみに、画像フォーマットのTIFFは両方のエンディアンに対応しているのも
    これら二つのCPUのタイプが存在することに関係してるんですよ。

    ほかにも、「アルゴリズム」のことを『大馬鹿者に噛んで含めて説明する』
    なんていう、なんとも的確な表現がしてあったりして、なかなか良い本です。

    一応、本の中では特定のCPUに依存せず、「偽機械語」なるもので説明が
    されています。
    後半では、Z-80やPentiumについての解説もありますけれど。

    その「偽機械語」のエミュレータとアセンブラも付属していますが、筆者のWebサイト
    でも配布されてるようなので、試してみるのもよいかもしれません。
    http://www.algolab.co.jp/~lum/pcnyumon/support/index.html

    Filed under: Book
    2005/06/10 8:39 pm | 機械のコトバ はコメントを受け付けていません。

Comments are closed.