Table Of Content著者まえがき
BASICを卒業されたみなさんは‘‘マシン語’'という言葉にどこか神秘的
なイメージを抱いていることと思います.確かに,すべてが数字で表される
マシン語は,冷淡で人間の思考と相容れない部分があります.しかし実際に
触れてみれば,とてもホッ トで,私逹を熱くする魅力を,そしてまた広大な
’i:'Ili1レそこに発見することでしょう.
ヤかイ滓か最近のパーソナル・コンピュータは,屯源を入れるとすぐに
BASICh •使えるようになっており, コンビュータのしくみやマシン語の存
(1.を、0識させません.これはある意味では正しい方向ではあるのですが,コ
ン1:..’;1ークの本質を理解ナる妨げになっていますし,少し高度なことをしよ
うとする とすぐにBASICという壁に遮られてしまうのも事実です.そもそ
もコンビュークとは,
マシン語のみを実行する
ものであるため,BASICの厚いカーテンの外側からではその能力の 100%
を発揮させることは不可能です.BASICでは‘‘自由な処理ができない”,‘‘処
理速度がおそい”など,いくつもの不満をあげることができますが,本むは
このような不満を持っているみなさんのための,マシン語およびコンビュー
タの,本当の意味での入門をお手伝いします.
本内は6809用のマシン語入門杏ですが,そのタイトルrはじめて砒む6809』
からもわかるように,村瀬康治氏の執策された rはじめて読むマシン語』の
6809版であり,本内の内容は全般にわたり,原著 rはじめて読むマシン語』
に準拠しています.特に6京までのコンピュータの基本的な知識に関する解
説では,6809の特徴的な部分を除き,原著と同じ内容構成になっています.
また,7章以降の6809マシン語命令の解説においても,なるぺく原箸の`‘わ
かりやすさ”を反映するように努めました.しかし,筆者の力がおよばず至
らぬ点があれば,今後読者の方々のご叱正をお願い申し上げます.
『はじめて曲むマシン語』が,数多くの80系ハーソナル ・コンビュータ ・ユ
ーザーのマシン語の手引き心となったように,本lいが6809ハーソナル ・Jン
ビュータ ・ユーザーにとっての手引きほとなれば,頂名としてこれに勝る召
びはありません.
なお,本1i}は村瀬氏の監作によるものですが,木,1}の6809にl\lclJる飢'lliiぉ
‘F
よびプログラムについての買任は,すべて 者の負うところです.
最後になりましたが, '岱士通株式会社 ,株式会社日立製作所には,舟!tlu)
提供等で大変お世話になりました.ここに感謝の意を火しよ-J.
1984年II月 11'.illi;り樹
監修のことば
心'trはじめて、:)しむ6809』は, Z-80CPUを対泉に した拙秤rはじめて読む
マシン {りを1!i休と して,品山浩樹さんの紫睛らしいリライトによって6809
II
を対(Kとしたマンン語の人l11I曹として誕生しました.
「れはまだBASIC荒野をさまよっているのか」
これはその「はしめて説むマシン語』(1983年10月初版発行)に当初予定し
ぴ,I•幻のサフクイトルです. 結局これは, もう少しやさしい表現となり,
Iげんど 1グ)コノピュータと出逢うために」というbilj題で出版されましたが,
と丁らも. BASICを脱出しなければコンピュータの世界は開かれないことを
-,てし・ます.
11
Z 80CPUを対象にした rはじめて説むマシン語』は,今までに何冊かのマ
/ノ99{tの人I'‘l,9Fに挑戦したにもかかわらず挫折した人を含めて,「ほんとうの
コンピュータ」を知ろうとしている多〈の人たちへ,ソフトウェア 自立への
足掛かりとなる 淋を附りたい、という気持ちから杏いたもので,私としても
かなり象餡所な構成をしたつもりです.幸いこの本は,アンケート葉杏などか
らみて もかなり好評で,各方而で広〈受け入れられており,発必以米すでに
何万人もの説者が「BASICから脱出」する契機となった只]であると自itして
います.
ところヵ<rはじめて切しむマシン語』は, Z-80を対象にしているため,発売
された当初から`箱士辿や日立などのパーソナル・コンビュータのユーザーを
中心に、非常に多くの人たちから,6809用の『はじめて説むマシン語』を出
してほしいという希望が寄せられていました.これは私の宿題であり,早〈
リライトしなければ,と思っていましたが,なかなか手を付ける余裕がない
ままでいたところ,足山浩樹さんの素II,t.'らしいリ ライトによって,『はじめて
読む6809』として実現することができました.
これは氏の6809に対する豊貨な知識と,梢熱と↑!雌lI性によるものであり.
叡}以上の出米栄えに, 6809の一7ァンとしても」I:‘i化にttんでいます.見山
さんに深くお礼を巾し上げます.どうもありがとうございました.
本、1汐のタイトルは『はじめてぷも、6809』ですか、ただ6809のマシン,;Ii(/)人
1"間 にとどまらず、広く「ほんとう のコンピュ-:タ」との出述いの:!只ともな
るでしょう .6809ハーソナル ・コンビュータを前に.本lドをfeにしたJ)lt. t
たとない絶好の機会です.この機を逃さずに.BASICばかりては1.11ること
のできない,ほんとうのコンピュータのIll;界へ、').j気を出してぜひ粘み込ん
で〈たさ\ヽ.
本LI}をしっかりとぶみ迫めば,マシン品やCPUを中心にしたコンヒ'..l.ータ
の甚本的な勅きは.実に単純であることに気づくてしょう .
途中で挫折せす,本杏を繰り返し最後まで,ぷみ進んでみてくたさい.その
とき.あなたの前にコンビュータの世界が大きく開かれていることでしょ う.
次の言葉は,rはじめて品むマシン語』の日頭部に占いた,盆むへのメ ソセ
ージですがこの言菜を rはじめて祉む6809』のdた者へも,ぜひ附りたいと
思しヽます.
BASICの殻から一歩を踏み出し,マシン語_一つま りはコンピ
ュータの基礎を学ぼうとしている賢明な説者に,心から励まし
の言菜を送ります.
あなたと``コンビュータ’',そのはんとうの出逢いは本1ドから始
まるのかも知れません.
1984年11月 村面罪
CONTENTS
著者まえがき....................................................................3
監修のことば・・・.................................................................5
1
一コンピュータの内部にさわる………………………
11
1. 1 モニタの機能 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・13
1. 2 モニタ操作の実習 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・14
_
2
メモリの基礎知識・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・21
2. 1 ピット,/\'イト,アドレス・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・23
2. 2
メモリの内容を見る•................................................··27
2 .3
16進数・・・・・・・・・•........................................................•31
_
3 コンピュータはマシン語て動く••…………………•39
3. 1 BASICインタープリタはマシン語のプログラム…………•41
3 .2 マシン語で命令してみよう ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・46
4
一コンピュータ・システムの構造 ・・・・・・・・・・・・・・………•••49
4. 1 CPUの働き ........................................................・..・51
4.2 メモリの慟き・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・53
4.3 1/0の働き..........................................................・・56
_
5
CPU
コンピュータの中心 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・59
51 CPUの内部 ・・・・......................................................・・61
.
5.2
プログラム実行のメカニズム・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・65
6
ァセン
一 フ'’l)号-ロ圭ロとアドレッシングモード ·……•••67
6.1 マシン語とニーモニック・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・69
6.2
アドレッシングモード(Addressingmode)••……•・・・・・・·・71
7
転送命令(レジスタ⇔メモリ)
_ ••…,.............. ......•75
71 LD, ST命令・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
. ・・・・・・・・・・・・・・77
7.2 命令の動作確認・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・82
卓
2項演算命令(算術演算,論理演算比較命令)
•••89
8•1••算 術演算ADD,SUBほか ...................................
・・・・・"91
82 論理演算AND,OR, EOR.................................
83 ・・・・・・・・・•99
比較CMP,BIT........................................... ..
・・・・・・・..103
一9 単項演算命令(増減,クリア,テスト命令) ……• 105
9. 1 算術,論理演算NEG,COM ・・・・ ・ ・ ・ .. ・・・・・ . . ..... ・・・.. .・・・ ・・ ・ ・・ ・ ・・ 1 0 7
9.2 増減命令INC,DEC.............................................. 112
9.3 クリア,テストCLR,TST.......................................... 114
10
一シフト/ ローテート命令・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 119
10. 1 ロジカ)レ・シフトLSL,LSR...................................... 121
10.2 アリスメティック・シフトASL,ASR.......................... ・12 4
10.3 ローテートROL,ROR........ ・・.. ......................... ・・... . ・12 8
_
11 転送命令(レジスタ⇔レジスタ)・………………•• 131
11. 1 トランスファTFR・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・13 3
11. 2 エクスチェンジEXG・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 135
_
12
スタックを扱う命令・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 139
12. 1 スタックの概念・・・・・・・・・・・・・・・・・・・..........•·•············•.....•. • 141
12.2 スタックを利用するPSH,PUL ・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・1 4 4
_
13
分岐命令・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 149
13. 1 プログラムの流れを変えるJMP(絶対アドレス指定の分岐命令) ・・・151
13. 2
サプルーチンを呼ぷJSR/RTS .....…•・・・・・・·…,.......... 153
13. 3 条件判断とプランチ命令B00(相対アドレス指定の分岐命令)・・・ 158
13. 4 フラグと条件分岐.................................................161
_
14 ィンデックスモードのアドレッシング方式•…•••169
14. 1 レジスタによるアドレス指定・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 171
14. 2 ポストノ<イト ・・・・・・・・・・・...............................................181
14. 3 実効アドレスのロート'L.EA......................................185
_
15
ゃさしいプログラム例
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 187
15. 1 入出力)レーチン・・・.................................................189
15. 2 除算)レーチン ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・•・ •• 19 1
15. 3 データの並ぺ換え ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・•... 19 3
15. 4 BASICとマシン語の結合.........................................196
APPENDIX ・・・・・・・・・--・・・・・・・・・・・・--・・----・・・--・・------・・・--・--・・・・
203
1. S WI命令と初期設定につしヽて・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・•204
2.機種別メモリマッフ゜.................................................. ..206
3 . キャラクタコード表 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・208
4. 6 809マシン語命令表 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・•209
I・····· ·································••................
索 弓 213
イラストレーショ‘
;,, :細田稚亮
コンピュータの内部にさわる