標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第172回]

●今まで説明してきた命令を、もう一度、整理してみました

[第110回]で、最初に作った1枚目の試作基板の回路と、2枚目の試作基板の回路についての説明が完了した区切りとして、それまでに説明した命令回路について、表にまとめました。

その後に、すでに説明した1枚目、2枚目の基板の命令回路と、結局設計しただけで試作基板製作まではしなかった3枚目の基板の命令回路をあわせて、1枚の試作基板にしたのが、今も動作テストを継続中の「試作2号基板」です。
その「試作2号基板」についても、やっと旧試作基板にあった範囲の命令の回路についての動作テストを、先日[第166回]のIN、OUT命令で、無事完了しました。

現在は、旧試作基板にはなかった命令回路(つまり「試作2号基板」ではじめて基板に実装することになった命令回路)についての動作テストと、その説明をしています。
基板にICもかなり実装できて、未実装のスペースもだいたいは埋まってきています。
この辺で、もう一度、すでに完了した命令と、これから検証しなければならない命令について、表にまとめてみたいと思います。

[第110回]で作った表に、その後に説明を完了した命令の説明回を追記してみました。
着色してある命令が、その後に説明を完了したもので、「説明回」が空欄の命令は、これから検証しなければならない命令です。

命令コード アセンブラ表記 説明(初出)回
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
10 001 sss ADC rm
10 010 sss SUB rm
10 011 sss SBB rm
10 100 sss ANA rm
10 101 sss XRA rm
10 110 sss ORA rm
10 111 sss CMP rm
11 000 110 ADI imm
11 001 110 ACI imm
11 010 110 SUI imm
11 011 110 SBI imm
11 100 110 ANI imm
11 101 110 XRI imm
11 110 110 ORI imm
11 111 110 CPI imm
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
11 011 011 IN port 第106回
11 010 011 OUT port 第106回
00 pp0 001 LXI rp, imm1

第65回

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
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
00 110 111 STC 第167回
00 111 111 CMC 第167回
00 100 111 DAA
00 100 010 SHLD addr 第104回
00 101 010 LHLD addr 第104回
11 111 011 EI
11 110 011 DI
00 000 000 NOP 第156回

確かに、もう一息というところですけれど、まだ肝心のALU(Arithmetic Logic Unit)関係の命令には全く手がついていません。
一番おいしいところは、最後に残してあるのですよ。

おいしいショートケーキをいただくときのように、周りから少しずつ攻めていって、最後にイチゴの乗った部分をパクリといくのですねぇ。

あるいは、やっぱり外堀から少しずつ攻めていって、三の丸、二の丸と落として、それからいよいよ本丸、天守閣へ、という段取りなのですね。

そこで、ながながと続く「つくるCPU」の説明も、いよいよ、イチゴ、ではない、天守閣、でもなかった、ALUの部分の説明へと、進んでいきます。

●ANA、XRA、ORA、ANI、XRI、ORI、の回路を実装しました

いよいよロジック関係の命令回路の検証です。
AND、XOR、OR命令です。
8080では、ANA、XRA、ORA、ANI、XRI、ORIの6種類になります。
今回は、それらの各命令回路と、実際に演算を行う、論理演算回路を実装しました。
あ、でも、まだ、イチゴ、ではなかった。えっと、本丸ではありません。
やっと二の丸あたりまで来たところでしょうか。

写真をクリックすると、拡大画像を見られます。
拡大画像はサイズが大きい(約1MB)ので、インターネットの低速接続環境ではダウンロードに時間がかかります。ご注意ください。



前にも説明したと思いますが、ひとつのICの、同じパッケージ内のゲートを複数の命令回路で使っていますので、作業が進んでくると、まだ先に実装する予定の回路でも、そのうちのかなりの部分がすでに実装済みになってしまう、ということになります。
今回は、AND、XOR、OR命令の回路を実装しただけで、これからあと、まだ算術演算(ADD、SUB)などの命令を、さらに実装しなければならないのですが、こうやって写真を見ると、もう、あらかた実装してしまった感があります。
命令の説明、回路の説明はまだまだ当分は続くことになりますが、実際の実装作業は、もう、じきに済んでしまいそうです。
2009.2.26upload

前へ
次へ
ホームページトップへ戻る