標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第335回]
●ただいまの状況です
お蔭様であっという間に完売御礼ということになってしまって、そりゃあもう嬉しいことは嬉しいのですけれど、ご注文いただいた皆様からお振込みの連絡が入ってきますと、いやがうえにもプレッシャーがかかってきてしまいます。
もう目がつりあがっています。
なんとか連休突入前にカタをつけたい、という思いで必死に作業しています。
せめて組立説明書、操作説明書、8080命令説明書はなんとか片付けてしまいたい、のです。
そうしないことには、出荷できません。
本日はかなり進みました。多分明日になればなんとか見通しがつくようなところまでできてきました。
問題はプリント基板です。
今回分は基板を修正しなければなりません。
これに手間がかかりそうです。
一日で何枚直せますか…。きびしい、です。
そういう状況ですから、記事の更新もままなりません。
今回は、8080命令説明書の残りをUPいたします。
●8080命令説明書(4)
☆☆☆[第332回]の続きです☆☆☆
●[10] コール、リターン命令 このグループの命令はフラグに影響を与えません。
91. CALL B3B2 コード CD×××× クロック18(17)
B2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
なおこのとき、このCALL命令の次の命令のアドレスをスタックに退避します。この結果SPは2減じられます。サブルーチンの最後にリターン命令を使うとスタックに退避されていたアドレスをPCに入れコール命令の次の命令のアドレスへ戻ります。
92. CNZ B3B2 コード C4×××× クロック 18(Z=0)または8(Z=1) (17(Z=0)または10(Z=1))
ZフラグがセットされていなければB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
93. CZ B3B2 コード CC×××× クロック 18(Z=1)または8(Z=0) (17(Z=1)または10(Z=0))
ZフラグがセットされていたらB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
94. CNC B3B2 コード D4×××× クロック 18(C=0)または8(C=1) (17(C=0)または10(C=1))
CフラグがセットされていなければB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
95. CC B3B2 コード DC×××× クロック 18(C=1)または8(C=0) (17(C=1)または10(C=0))
CフラグがセットされていたらB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
96. CPO B3B2 コード E4×××× クロック 18(P=0)または8(P=1) (17(P=0)または10(P=1))
PフラグがセットされていなければB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
97. CPE B3B2 コード EC×××× クロック 18(P=1)または8(P=0) (17(P=1)または10(P=0))
PフラグがセットされていたらB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
98. CP B3B2 コード F4×××× クロック 18(S=0)または8(S=1) (17(S=0)または10(S=1))
SフラグがセットされていなければB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
99. CM B3B2 コード FC×××× クロック 18(S=1)または8(S=0) (17(S=0)または10(S=1))
SフラグがセットされていたらB2B3で示されるアドレスからはじまるサブルーチンをコールします。
B2B3については 8.LDA B3B2 の説明を参照してください。
100. RET コード C9 クロック8(10)
スタックのトップに退避されていたアドレスデータをPCに入れ、そのアドレスにリターンします。この結果SPは+2されます。
101. RNZ コード C0 クロック 8(Z=0)または4(Z=1) (11(Z=0)または5(Z=1))
Zフラグがセットされていなければリターンします。
102. RZ コード C8 クロック 8(Z=1)または4(Z=0) (11(Z=1)または5(Z=0))
Zフラグがセットされていたらリターンします。
103. RNC コード D0 クロック 8(C=0)または4(C=1) (11(C=0)または5(C=1))
Cフラグがセットされていなければリターンします。
104. RC コード D8 クロック 8(C=1)または4(C=0) (11(C=1)または5(C=0))
Cフラグがセットされていたらリターンします。
105. RPO コード E0 クロック 8(P=0)または4(P=1) (11(P=0)または5(P=1))
Pフラグがセットされていなければリターンします。
106. RPE コード E8 クロック 8(P=1)または4(P=0) (11(P=1)または5(P=0))
Pフラグがセットされていたらリターンします。
107. RP コード F0 クロック 8(S=0)または4(S=1) (11(S=0)または5(S=1))
Sフラグがセットされていなければリターンします。
108. RET M コード F8 クロック 8(S=1)または4(S=0) (11(S=1)または5(S=0))
Sフラグがセットされていたらリターンします。
109. RST n(n=0〜7) コード(下表) クロック12(11)
1バイトで実行できるコール命令です。ただしコールできるアドレスは下表の8種に固定されています。
例えば、RST 3(コードDF)は、CALL $0018(コードCD1800)と同じ動作になります。
ニーモニック | コード | アドレス |
RST 0 | C7 | 0000 |
RST 1 | CF | 0008 |
RST 2 | D7 | 0010 |
RST 3 | DF | 0018 |
RST 4 | E7 | 0020 |
RST 5 | EF | 0028 |
RST 6 | F7 | 0030 |
RST 7 | FF | 0038 |
●[11] 入出力命令
110. IN B2 コード DB×× クロック8(10)
B2で指定されるアドレスのI/OデバイスからデータをアキュムレータAに入力します。フラグは変化しません。
111. OUT B2 コード D3×× クロック8(10)
B2で指定されるアドレスのI/OデバイスにAレジスタのデータを出力します。フラグは変化しません。
2009.9.17upload
前へ
次へ
ホームページトップへ戻る