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