『動かしながら理解するCPUの仕組み CD-ROM付』
加藤 ただし(著)
2010年
講談社
★★☆☆☆
講談社ブルーバックスの「B1665」。サブタイトルは「パソコンの中心はどうなっているのか」。1976年に開発されたザイログ社の8ビットCPU「Z80」で学ぶCPU動作の基礎。
「組み込みシステム」のエンジニア教育を念頭に置いた本。本書に関心のある人は、まず「はじめに」の「1. 本書の目的」を読んでみるべき。デバッガ(のシミュレータ機能)を用いてZ80がマシン語命令に沿って動作していく様をジックリ観察しZ80への理解を深めよう、という趣旨の本なので、CPUが何をどのように行っているのか「概念的に学びたい」という読者には不向きだと思う。
読み始めて驚いた。本書の内容は「組み込みエンジニアのためのZ80マシン語入門」と言っていいようなものなのである(後半では、シミュレートされたメモリ上にマシン語命令を手打ちしていく!)。CPUの原理や働きについて読み物として語り聞かせてくれる本ではないので、そういう本を期待していた読者は大いに面喰うだろうと思う。そういう意味で、あまり新書向きの内容ではないのかもしれない。
参っちゃったな〜、というのが正直な読後感。マシン語・アセンブリ言語入門としても、CPU入門としても、初歩的な部分に軽く触れただけで、如何にも中途半端。シミュレータの簡単な使い方を説明し、主なマシン語命令によってどのようにCPU内部のレジスタやフラグ、メモリ上の値が変化するのかを示しただけで、概念的な「まとめ」がないまま終わってしまう(と言うか、概念的なレベルの話は最初から最後まで全くない。本書のテーマはまさに「各種マシン語命令によって、レジスタ、メモリ、I/Oポートの値がどう変わるか」なのだと思う)。本書を読み終えた読者の多くは、「それで?」と放り出されたような気分になるのではないか。
「電子工作をするような人には役立つのかな?」とも思ったが、「割り込み処理」関係の話が綺麗サッパリ省かれているし、基本的なマシン語命令を組み合わせてどのように所望の処理を実現していくか、という「マシン語プログラミング入門」にもなっていない…。ハッキリ言って、2〜3章にまとめられる程度の内容。逆に言うと、もう少し大きな判型の薄い小冊子としてまとめれば、「組み込みマイコン入門1日講座」の資料としてはちょうど良いのかもしれない。例えば、「FX-マイコン シミュレータ」を楽しめる読者なら、本書の範囲内でもシミュレータソフトでそれなりに楽しく遊べるかも。
CPUの生の姿を垣間見ることの利点は、コンピュータ(CPU)が結局のところただの「2進数加算マシン」に過ぎない、という事実がいよいよハッキリと見えてくる点。結局、コンピュータによる情報処理とは、入力情報と出力情報との間に適切な対応付けを行うこと。プログラミングとは、人間にとって意味のある情報をCPUが扱うことのできる2進数値として表現した上で、入力された情報(を表す2進数値)から出力すべき情報(を表す2進数値)を生み出す処理を(CPUに本質的に唯一可能な)「2進数値の加算」によって如何に実現するか、その手順を策定すること。究極的にはそれに尽きるのだ(あくまでも「究極的には」だが)。CPUにできることと言えば、自身と直接つながっているメモリ・I/Oポート上の2進数値を読み出し、算術演算・論理演算等を行い、その結果をまたメモリ・I/Oポート上に書き出すことだけなのだから。そういう気づき・理解を促すような概念的な話があれば、エンジニアではない一般の読者にとっても面白い本となっていたかもしれないのだが…。本書はそういう趣旨の本ではないのである。
ちなみに、「教育用マイコン」として見たときのZ80は、インテル社の16ビットCPU「8086」よりも命令セットがシンプルで理解が容易なのだと思う。当然のことながら、『大人の科学マガジン Vol. 24』(2009年 学習研究社)の付録の4ビットマイコン「GMC-4」(1981年に発売された「電子ブロック FX-マイコン R-165」を再現したもの)よりもはるかにずっと高機能で実用的。4ビットCPU以上・16ビットCPU未満というところが、教育用途にはちょうど良いアンバイなのかもしれない。
Z80マシン語プログラム開発のためのデバッガ「Z-Vision」(システムロード社)の(シミュレータ機能だけを抜き出した)付録版を収めた8cmCD-ROMが1枚付属する。本書の内容を追体験するだけならシミュレータを実際に動作させるまでもないが、ちょっとしたプログラムを書いて試してみたいという場合にはシミュレーターが不可欠。ただし、(本書には記載はないが、
出版社のサポートページによると)64ビット版Windows 7では動作しないとのこと(Windows 8、8.1についての記載はない。我が家の32ビット版Windows 7では一応動くが、本書で「未使用で、常に『0』」とされているフラグレジスタのビット3が1になったりするのだが…?)。
本文205ページ程度(他に、索引が4ページ)。
→
Kota's Book Review

0