標準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 | |
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
前へ
次へ
ホームページトップへ戻る