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

●SPHL命令のクロック毎の動作の写真です

動作の確認をするために次のプログラムを実行させました。

0000 213412    LXI H,1234
0003 F9        SPHL
0004 E9        PCHL

HLレジスタに”1234”を入れておいて、SPHL命令でSP(スタックポインタ)にHLレジスタの値”1234”が入ることを確認します。
その後、PCHL命令でPC(プログラムカウンタ)にもHLレジスタの値”1234”が入り、さらにその後、メモリアドレス”1234”にジャンプすることを確認します。
LXI H命令が終わったあとの、SPHL命令のT4から、クロック毎の動作を見ていくことにします。

SPHL命令のT4の写真です。


OPコードレジスタには”F9”(SPHL命令のOPコード)がラッチされています。
PC(プログラムカウンタ)は”0004”になっていますが、PCADoutが消灯していて、PC(プログラムカウンタ)の値は、外部アドレスバスA15−A0には出力されていません。

regRDとregWRが共に点灯しています。
regRDが点灯していて、s3−s0が”1101”なのでデータの送り手としてLレジスタが選択されます。
LregRDが点灯していて、Lレジスタの値、”34”が内部データバスinnerBUSに出力されています。
regWRが点灯していて、d3−d0が”0101”なのでデータの受け手としてSP(L)レジスタ(スタックポインタの下位8ビット)が選択されます。
SPLwrが点灯していて、SP(L)レジスタに内部データバスの値”34”が読み込まれています。

s3−s0、d3−d0とレジスタの関係については、「レジスタコード表」([第27回])を参照してください。

T5の写真です。


regWR、SPLwrが消灯し、SP(L)レジスタに、内部データバスの値”34”がラッチされました。

T6の写真です。


regRDとregWRが共に点灯しています。
regRDが点灯していて、s3−s0が”1100”なのでデータの送り手としてHレジスタが選択されます。
HregRDが点灯していて、Hレジスタの値、”12”が内部データバスinnerBUSに出力されています。
regWRが点灯していて、d3−d0が”0100”なのでデータの受け手としてSP(H)レジスタ(スタックポインタの上位8ビット)が選択されます。
SPHwrが点灯していて、SP(H)レジスタに内部データバスの値”12”が読み込まれています。

T7の写真です。


regWR、SPHwrが消灯しました。
SP(H)レジスタに”12”がラッチされました。
SPHL命令はT7で終わりです。最後のT8は一瞬で終了し、次の命令のT0になります。

次の命令はPCHLですが、PCHL命令もT0〜T3は省略します。

●PCHL命令のクロック毎の動作の写真です

PCHL命令のT4の写真です。


OPコードレジスタには”E9”(PCHL命令のOPコード)がラッチされています。

regRDとregWRが共に点灯しています。
regRDが点灯していて、s3−s0が”1101”なのでデータの送り手としてLレジスタが選択されます。
LregRDが点灯していて、Lレジスタの値、”34”が内部データバスinnerBUSに出力されています。
regWRが点灯していて、d3−d0が”0011”なのでデータの受け手としてPC(L)レジスタ(プログラムカウンタの下位8ビット)が選択されます。
PCLwrが点灯していて、PC(L)レジスタに内部データバスの値”34”が読み込まれています。

s3−s0、d3−d0とレジスタの関係については、「レジスタコード表」([第27回])を参照してください。

T5の写真です。


regWR、PCLwrが消灯し、PC(L)レジスタに、内部データバスの値”34”がラッチされました。

T6の写真です。


regRDとregWRが共に点灯しています。
regRDが点灯していて、s3−s0が”1100”なのでデータの送り手としてHレジスタが選択されます。
HregRDが点灯していて、Hレジスタの値、”12”が内部データバスinnerBUSに出力されています。
regWRが点灯していて、d3−d0が”0010”なのでデータの受け手としてPC(H)レジスタ(プログラムカウンタの上位8ビット)が選択されます。
PCHwrが点灯していて、PC(H)レジスタに内部データバスの値”12”が読み込まれています。

T7の写真です。


regWR、PCHwrが消灯しました。
PC(H)レジスタに”12”がラッチされました。

T8(次の命令のT0)の写真です


T8は一瞬で終了し、次の命令のT0になります。
PCADoutが点灯していて、PC(プログラムカウンタ)の値”1234”が外部データバスA15−A0に出力されています。
HLの値で示されるメモリアドレス”1234”にジャンプしたことがわかります。
2008.10.12upload

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