現在2015年3月24日13時32分である。
私は既に、この題名で、3つの投稿をした。
今日は、4回目である。
今回は、この一連の投稿の少し先の方をカバーしよう。
そもそも、この一連の投稿は、アセンブリ言語というものを、多くの人に知ってもらい、そのアセンブラというものの、敷居を下げることにあった。
アセンブラでプログラムを組むのが、どういうとき、役に立つのか、というのは、以下のページにシステムエンジニアが書いている。
これを読んで、アセンブラなんて、必要ない、と思ってしまったとしたら、諸君はコンピューターというものが、分かっていない。
アセンブリ言語で、プログラムを書くことの強みや、そのほとんどオールマイティーな武装、どんな言語で書かれたプログラムでも解析できてしまう万能さ、を知ってみなければ、コンピューターを完全に理解できないのである。
しかし、やっぱりアセンブラまたはアセンブリ言語を知ってみなければ、そのすごさは分からない。
そこで、現代の諸君が、どうやったら、アセンブラを理解できるのか、1つの道筋を示そう。
私が、1998年7月に、その後8年半勤めることになる会社に入ったとき、上司だった人から、『Z-80の使い方』という本を渡されて、
「勉強してきて。」
と言われた。
この本である。
- 作者: 横田英一
- 出版社/メーカー: オーム社
- 発売日: 1993/08
- メディア: 単行本
- 購入: 1人 クリック: 9回
- この商品を含むブログを見る
それは、工業高校などへ行っている人や、工学部の電気工学科などを卒業している人には、簡単に分かる本だったのかも知れないが、私には、歯が立たなかった。
だが、上司に、質問したくても、何を質問したらいいのか分からない。
小学校の頃から、分からないことがあったら、
「ぜーんぜん、分かりません。」
と質問してきた人なら、この場合も、それを実行したかも知れない。
だが、私は、質問するということに、慣れていない。
以前、どこかのブログで、『ワープする宇宙』のリサ・ランドールさんは、先生のジョージアイから、
「出来るようになりたかったら、どんどん質問しなさい。」
と言われて、積極的に質問するようになり、大成したのだ、と読んだことがあったが、一流の物理学者になりたいのなら、それでも良いが、私はそれで満足しない人間なのだ。
- 作者: リサ・ランドール,向山信治,塩原通緒
- 出版社/メーカー: NHK出版
- 発売日: 2007/06/28
- メディア: 単行本
- 購入: 14人 クリック: 186回
- この商品を含むブログ (97件) を見る
質問できないとなったら、やるべきことはただ1つ、池袋のジュンク堂書店へ行き、私のレヴェルにあった本を探した。
こういう時、どうやって探すか、といったら、絨毯爆撃をするのだ。
手際よく探そうなんて思ってはいけない。
本屋さんの本を、片っ端から開いていくのだ。
そして、自分の理解できる本を見つけるまで、続けるのだ。
私が大学2回生のとき、数学で正しいとはどういうことか分からなくなったとき、大学の図書館で、ブルバキを初めとして、片っ端から本を開いていき、大芝猛著『数学基礎概説』に出会ったときの方法だった。
- 作者: 大芝猛
- 出版社/メーカー: 共立出版
- 発売日: 1987/10/20
- メディア: 単行本
- クリック: 3回
- この商品を含むブログ (1件) を見る
今回、私にとって、手掛かりはほとんどなかったが、次の本だけが、私に、最初の10ページほどが読めることが分かった。
- 作者: 村瀬康治
- 出版社/メーカー: アスキー
- 発売日: 1983/01
- メディア: 単行本
- 購入: 13人 クリック: 51回
- この商品を含むブログ (13件) を見る
これを買ってきたとき、京都から負け犬のように帰ってきたと私を評価していた弟は、
「英語も分かってないのに、マシン語かよ。」
と嘲笑った。
だが、私は、この本を読めば、きっとマシン語が分かると、自信があった。
この本を私が読めたのには、理由があった。
私は、小学校3年生の時から、PC-8001のN-BASICを触ったことがあり、そのゲームをやるとき、マシン語の16進数のプログラムをロードしたこともあり、また、インベーダーゲームをやりたくて、本に3ページにわたって書いてあった、16進数の意味不明の長いプログラムを、手でキーボードから打ち込んだこともあったのだ。
その経験のお陰で、この本を読むとき、実際にパソコンで実行しなくても、
「長いコードが、表示されますね。」
というのが、実感できたのだ。
私は、1月かけて、その本を読み終えると、続編に取り掛かった。
はじめて読むアセンブラ―ソフトウェアツールの原点を探る (アスキーブックス)
- 作者: 村瀬康治
- 出版社/メーカー: アスキー
- 発売日: 1985/02
- メディア: 単行本
- 購入: 3人 クリック: 25回
- この商品を含むブログ (6件) を見る
そして、2ヶ月後、私は、『Z-80の使い方』の最初の章を読めるようになった。
これで、アセンブラの話は終わりだろうと、諸君は思うだろう。
だが、勉強というものは、そんなに甘いものではないのだ。
『Z-80の使い方』を読み終わっても、私は、マシン語のプログラムを組めるようにならなかった。
なぜだか分からなかった。
「どうしても、コンピューターのことが分かりません。実際にコンピューターを作ってみなきゃ、分からないんでしょうかねえ。」
と、上司に相談したこともあった。
だが、上司は、
「コンピューターを作るってことは、キーボードのチャタリングなどのことも考えなくてはならなくなるから、そんなに気安く理解できるものではないんだよ。」
と応えてきたのだった。
別な上司に、
「マシン語の勉強をするには、どういう風にやればいいんでしょうかねえ。」
と、質問したこともあった。
その上司は、
「だったら、C言語を勉強するといいよ。」
と言った。だが、なぜC言語を勉強するといいのか教えてくれなかった。
私は、C言語の勉強も始めたが、プログラムを組めるほどにはならなかった。
結局、私は、その会社で、金属加工などをやっていた。
だが、加工の基本はやすりがけなのである。ところが、私は、金属を切断したときの、
『バリがでている。』
という状態を、指の感触で感じ取ることが出来ず、この会社に居場所はないな、と思っていた。私には、数学と物理学しかないと。
そして、7年ほど経ったある日、私は、会社の本棚で、
図解 マイクロコンピュータ Z‐80の使い方 (続) (図解マイクロコンピュータ)
- 作者: 横田英一
- 出版社/メーカー: オーム社
- 発売日: 1983/01
- メディア: 単行本
- この商品を含むブログを見る
Z80ファミリ・ハンドブック―Z80CPU・PIO・CTC・DMA・SIOの使い方のすべて
- 作者: 額田忠之
- 出版社/メーカー: CQ出版
- 発売日: 1985/01
- メディア: 単行本
- クリック: 2回
- この商品を含むブログ (1件) を見る
という2冊の本を見つけた。そして、この本を読んで初めて、私は、なぜ上司達が、アセンブリ言語のプログラムを組めるのか、分かった。
その2冊の本には、色々な計算に使うためのサブルーチンがたくさん載っていて、しかも、そのサブルーチンのプログラムには、至る所に誤植を修正する書き込みがあったのだ。
「これを使っているから、上司達は、プログラムが組めるのだ。」
私は、その会社の秘密を知ったようで、ある意味嬉しかった。
だが、私は、エンジニアになる気はなかった。
それで、8年半後、
「私は、数学者としては一流、物理学者としては超一流ですが、技術者としては五流です。この会社には居たくありません。」
と社長に書いて、会社を辞めたのだった
「ファインマンが、自分のことを一流だと言ったことがあるか。自分で一流だ、なんて言うなんて、お前は一流じゃないんだ。」
と父に非難されたが、私が自分を超一流だと言ったのには、2つ理由があった。
1つは、社長が私に、
「お前、『へぼの考え休むに似たり』って言葉知ってるか?」
と言ったことがあったのだ。これは、囲碁の格言なのである。私が、
『技術者としては五流です。』
と書いたのは、この時の言葉が頭にあったからなのだった。
そして、もう1つの理由は、映画『トップガン』の初めの方で、マーヴェリックが、
「歌手じゃやっていけないと思ったから。」
と言われるように、
「私は、物理学者としては超一流だから、辞めちゃって食べられなくなるなんてことはない。心配せず、辞めさせてくれ。」
と、安心させたかったのである。
その社長は、私に、カオス理論を勉強して、カジノで大もうけしようと言っていた。だから、辞表に、ファインマンが、カジノで食べていく方法を書いた、『ご冗談でしょう、ファインマンさん』の章を書いておいた。社長の奥様にはお好きだった『皇帝』のDVDをプレゼントしたが、社長にプレゼントがなかったので、これをプレゼントにしたのだった。
- 作者: リチャード P.ファインマン,Richard P. Feynman,大貫昌子
- 出版社/メーカー: 岩波書店
- 発売日: 2000/01/14
- メディア: 文庫
- 購入: 56人 クリック: 1,250回
- この商品を含むブログ (286件) を見る
- 作者: リチャード P.ファインマン,Richard P. Feynman,大貫昌子
- 出版社/メーカー: 岩波書店
- 発売日: 2000/01/14
- メディア: 文庫
- 購入: 24人 クリック: 122回
- この商品を含むブログ (171件) を見る
本当は、私には、もう一つ頭にあったことがあった。
映画『アマデウス』の中で、
「作曲家は君だけではないのだよ。」
と言われてモーツァルトが応えるセリフ、
「それは、分かっている。だが僕が最高だ。」
そして、伝記にも書かれている、ベートーヴェンの、
「あなたは、家系のために貴族になっている。でも、ベートーヴェンは歴史上私だけだ。」
2人とも、自分の才能を疑ったことはなかった。それが、作品にも現れている。その自信があるから、2人とも貧しくとも作曲を続けた。天才とは、そういう人達をさす言葉なのだ。
さて、会社を辞めてまだこの話は続く。
まだ、解明されていない謎が残っている。
あのもう1人の上司の、
『C言語』
とは、なんだったのだろう。その謎が解けたのは、この一連の投稿を始めて、私がインターネットで、アセンブラについて、調べたからだった。
なんて言葉知らなかった。C言語には、そのプログラム上で、アセンブリ言語のプログラムを書くことが出来るような、仕組みがあるのだ。
だから、あの上司は、C言語を勉強するといいよ、と言ったのだ。私はそのレヴェルまでC言語を勉強しなかったので、今まで分からなかったのである。
恐らく、これから、何年も経ってから、さらに、コンピューターについて知らなかったことが、明らかになるのだろう。
それにしても、ランダウの本もそうだが、コンピューターの本も、絶版になっている本が多いね。
仕方ないのかな。
さて、今日の話は、ここまで。
アセンブラを勉強するにはどうしたら良いか、書いてみた。
現在2015年3月24日16時00分。おしまい。