unoh.github.com

マシン語を学ぶ子ども達

Mon Oct 22 22:44:48 -0700 2007

尾藤正人(a.k.a BTO)です

コンピュータは低レベルのシステムを抽象化することで、どんどん扱いやすいものに進化してきました。 コンピュータの歴史は抽象化の歴史だと言い換えるのは大げさかもしれませんが、近いものはあるかもしれません。 ウノウで行うプログラミングはWebプログラミングがほとんどですが、WebプログラミングはPerl, PHP, Python, RubyのようなLLを使ってプログラムを書くことが多いかと思います。 LLは高度に抽象化されて低レベルで行っている処理を意識せずに記述することができる大変優れた言語です。 LLでプログラムを記述するにあたって低レベルのシステムを理解する必要があるとは思いませんが、知っていて損はない知識です。

少し前にマシン語についての話が話題になりました。 ちょうどタイミングよく社内勉強会の当番が回ってきたので、マシン語(というかアセンブリ言語を含む低レベルなシステムの話題)について勉強会をやってみることにしました。 せっかくなので資料を公開しますので、もしよかったらご覧下さい。

ざっくりとした内容は以下になります

通称で「パタヘネ本」と呼ばれる情報科学の教科書で世界的に広く使われている著名な本があるのですが、これを題材に作成しました。 パタヘネ本はコンピュータの基本的な仕組みを幅広く、しっかりと扱った素晴らしい名著です。 ぜひ、一読をおすすめします。 邦訳で第三版まで出ていますが、第三版は大幅に内容が削られてCDに収録されています。 僕は紙媒体で読みたかったので、あえて第二版を購入しました。

デモでは実際にMIPSエミュレータであるSPIMを使って、MIPSのアセンブリ言語を実行して出力結果の確認を行いました。

SPIM

実行例となるプログラムは大学の講義資料が公開されていましたので、そちらを利用させていただきました。

マイクロプロセッサおよび演習 (最終稿)

MIPSのようなRISC処理系は命令体系が簡単で非常に理解しやすくなっています。 x86系列は命令体系が複雑になってて、初めて学ぶには内容が難しいかもしれません。 まずはパタヘネ本を片手にMIPSを勉強する方が理解するには近道ではないでしょうか。

コンピュータの構成と設計―ハードウエアとソフトウエアのインタフェース〈上〉
ジョン・L. ヘネシー デイビッド・A. パターソン John L. Hennessy David A. Patterson 成田 光彰
日経BP社 (1999/05)
売り上げランキング: 53721
おすすめ度の平均: 5.0
5 コンピューターアーキテクチャのとても良い教科書
5 最も良い入門書
5 新人SE必読