標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第247回]
●やっと命令回路の説明が終了しました
前回までの、割込みとEI命令、DI命令の説明で、やっと命令回路の全ての説明が完了しました。
長かった。
しんどかった。
でも、ここまで、長々とおつきあいいただいて、ずっと読んでくださった方は、もっとしんどかった、かもしれませんね。
おつきあいいただいて、有難うございました。
でも、まだ、終わらないのです。
まだ、TK80のところの説明が、途中のままになっていますので、そいつを片付けなくてはいけません。
ま、それはともかく、記念すべき一区切りですから、もう一度、過去の説明を整理して、表にまとめてみることにいたしましょう。
もう何回かお見せした表です。
●今まで説明してきた命令を、表にまとめました
この表は[第110回]で作成したものです。
[第172回]で、その後に説明した命令を表に追記しました。
さらに、[第208回]でも、その後に説明した命令を表に追記しました。
欄が着色されていない命令は、[第110回]までに説明を完了した命令です。
黄色で着色してある命令は、その後、[第172回]までに説明した命令です。
水色で着色した命令は、その後、[第208回]までに説明した命令です。
ピンクで着色した命令は、その後、[第229回]までに説明した命令です。
この表に最後に追記をおこなったのは、[第229回]でした。
その時点で、残っていた命令はEI命令とDI命令だけでした。
今回は、第247回ですから、たった2つの命令なのに、ずいぶん時間がかかってしまいました。
単なる普通の命令ではなくて、割込みというしくみについても説明しなければ、と考えたために、余計に時間がかかってしまいました。
でも、読み直してみると、割込みとは関係のないところにはまりこんで、しっかり道草していたから、余計に時間がかかってしまった、ようです。
EI命令とDI命令については、[第229回]で説明を始めかけたのですが、その後完全に脱線してしまい、やっとのことで本線に復帰したのは、[第242回]になってからのことでした。
ですからEI命令とDI命令の初出回は、その[第242回]ということにしまして、やっと表の完成です。
今までと同じように着色しておきましょう。
今回はオレンジ色にしました。これで完成です。
命令コード | アセンブラ表記 | 説明(初出)回 |
01 ddd sss | MOV rm, r | 第40回 |
01 ddd 110 | MOV r, M | 第40回 |
01 110 110 | HLT | 第53回 |
00 ddd 110 | MVI rm, imm | 第49回 |
00 ddd 100 | INR rm | 第58回 |
00 ddd 101 | DCR rm | 第58回 |
10 000 sss | ADD rm | 第191回 |
10 001 sss | ADC rm | 第191回 |
10 010 sss | SUB rm | 第191回 |
10 011 sss | SBB rm | 第191回 |
10 100 sss | ANA rm | 第179回 |
10 101 sss | XRA rm | 第179回 |
10 110 sss | ORA rm | 第179回 |
10 111 sss | CMP rm | 第191回 |
11 000 110 | ADI imm | 第191回 |
11 001 110 | ACI imm | 第191回 |
11 010 110 | SUI imm | 第191回 |
11 011 110 | SBI imm | 第191回 |
11 100 110 | ANI imm | 第179回 |
11 101 110 | XRI imm | 第179回 |
11 110 110 | ORI imm | 第179回 |
11 111 110 | CPI imm | 第191回 |
00 000 111 | RLC | 第166回 |
00 001 111 | RRC | 第166回 |
00 010 111 | RAL | 第166回 |
00 011 111 | RAR | 第166回 |
11 000 011 | JMP addr | 第61回 |
11 011 010 | JC addr | 第63回 |
11 010 010 | JNC addr | 第63回 |
11 001 010 | JZ addr | 第63回 |
11 000 010 | JNZ addr | 第63回 |
11 110 010 | JP addr | 第63回 |
11 111 010 | JM addr | 第63回 |
11 101 010 | JPE addr | 第63回 |
11 100 010 | JPO addr | 第63回 |
11 001 101 | CALL addr | 第97回 |
11 011 100 | CC addr | 第97回 |
11 010 100 | CNC addr | 第97回 |
11 001 100 | CZ addr | 第97回 |
11 000 100 | CNZ addr | 第97回 |
11 110 100 | CP addr | 第97回 |
11 111 100 | CM addr | 第97回 |
11 101 100 | CPE addr | 第97回 |
11 100 100 | CPO addr | 第97回 |
11 001 001 | RET | 第98回 |
11 011 000 | RC | 第98回 |
11 010 000 | RNC | 第98回 |
11 001 000 | RZ | 第98回 |
11 000 000 | RNZ | 第98回 |
11 110 000 | RP | 第98回 |
11 111 000 | RM | 第98回 |
11 101 000 | RPE | 第98回 |
11 100 000 | RPO | 第98回 |
11 vvv 111 | RST vec | 第217回 |
11 011 011 | IN port | 第106回 |
11 010 011 | OUT port | 第106回 |
00 pp0 001 | LXI rp, imm1 | |
11 pp0 101 | PUSH rr | 第69回 |
11 pp0 001 | POP rr | 第70回 |
00 110 010 | STA addr | 第64回 |
00 111 010 | LDA addr | 第64回 |
11 101 011 | XCHG | 第91回 |
11 100 011 | XTHL | 第100回 |
11 111 001 | SPHL | 第93回 |
11 101 001 | PCHL | 第93回 |
00 pp1 001 | DAD rp | 第212回 |
00 pp0 010 | STAX rx | 第66回 |
00 pp1 010 | LDAX rx | 第66回 |
00 pp0 011 | INX rp | 第95回 |
00 pp1 011 | DCX rp | 第95回 |
00 101 111 | CMA | 第209回 |
00 110 111 | STC | 第167回 |
00 111 111 | CMC | 第167回 |
00 100 111 | DAA | 第223回 |
00 100 010 | SHLD addr | 第104回 |
00 101 010 | LHLD addr | 第104回 |
11 111 011 | EI | 第242回 |
11 110 011 | DI | 第242回 |
00 000 000 | NOP | 第156回 |
●問い合わせのメールをいただきました
「発売はいつごろの予定でしょうか?」というお問い合わせのメールをいただきました。
それなんですけれどねぇ。
本当は、もう、ぼちぼち完成して、堂々発売開始ですぅ、なんてことになっていなくてはいけないはずだったのですけれど、それが、まあ、諸般の事情で、なかなかに完成までいきつかないで、もたついているところです。
でも、少しずつですけれど、完成に近づいてきています。
本当に、もうあと少し、のところです。
目標としては、できれば、7月終りころまでには、発売開始!にしたい、と思っています。
それまでに、まだこなさなければならないことが、ヤマほど残っていますから、果たして目標通りにうまくいきますかどうか…。
それはともかく、時々、詳細をお知らせするようにいたしますので、もう少し気を長くしていただいて、おつきあいをお願いいたします。
●で、とりあえずの現在の状況です
説明の方は、まだあとTK80のところの説明や、そうそう、とんでもないミスを発見してしまったお話もまだしていませんでした。
それもしなければいけませんし、まだしばらく続きそうです。
それとは別に、またまたとんでもない、信じられないことにも出くわしてしまいましたので、それもまたどこかでご報告しなくては、と思っています。
作業の方は、配線図の最終チェックが済んで、これから最後のアートワーク図の修正作業と、シルク図の完成作業さえ済ませれば、いよいよ正式基板の発注、というところまで来ているのですが、そこで、止まってしまっています。
うーん。
じつは、ですね。
この間から、こうやって説明を進めていくうちに、あれま、だめじゃないの、というミスが見つかっているものですから、ちょっと、このまま基板を発注してしまうのは、やばいのではないか、という、まあ、当然といえば、当然の結論に至って、しばし、そこのところの対策について、思い悩んでいたところです。
当初は強気だったのですけれどね。
大抵は、大丈夫、だから、とにかく基板を発注してしまって、それができてくるまでの間に、まあ、ちょこちょこっと、形だけでもテストすれば、それでオーケーよ。なんたって、いままで命令回路についてはずいぶん個別にテストプログラムを走らせてきたから、大丈夫だってばぁ。
それが、大丈夫じゃなかったから、説明の途中で、あれま、というおかしなところがでてきたりしてるんですよぉ。
その、極め付きが、近日中にお伝えする予定の、とんでもないミスを発見してしまったこと、でした。
●やっぱり、徹底的にテストしてみなければ…
という結論です。
全命令の動作を、全部チェックするためのプログラムを作って、それで動作テストをすることに決めました。
もうカクゴしました。
それが済まないことには、ちょっと、基板の発注はできません(でも、それって、当たり前のことでしょうよ)。
それは、やらなくては、ということは、この間から、わかっていたんです。
でも、やりたくないなぁ。
そりゃあ、なんたって、ものすごく、退屈なプログラムをつくらなくてはならないから。
できれば、やりたくない…。
で、ぐずぐずしてましたけど…。
やっと、腹が決まりました。
昨日から、いくつかに分けてですけれど、テストプログラムの作成と、実際の動作テストの作業にとりかかりました。
やり始めてみると、これはこれで、それほど退屈な作業でもなくて、まあ、結構面白いかな、などと思い始めていたりもしています。
このテスト作業についても、適当なところでお話するつもりです。
ああ。その前に、中断してしまったままの、TK80の説明の続きやら、とんでもないミスを発見したことなどを書かなければ、いけませんでした。
でも、今回は、ちょいとまた時間がなくなってしまいましたので、それについては、次回以降に書くことにいたします。
2009.6.11upload
前へ
次へ
ホームページトップへ戻る