標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
やっと(!)MYCPU80の改良型基板製作に着手しました!!
[第850回]
●INX命令のテスト
組立作業も手間がかかりますが、RAMにプログラムを書き込んで動作テストをしながら進むというのも結構大変です。
でもここで手抜きをしたりしますと先に進んでから不具合がみつかったときなどもっともっと大変なことになってしまいます。
ですから手間がかかっても手抜きをしないでしっかりテストをしていかなければなりません。
今回はまずINX命令のテストです。
下のリストはINX命令のテストプログラムです。
0000 310000 LXI SP,$0000 0003 210000 LXI H,$0000 0006 110000 LXI D,$0000 0009 010000 LXI B,$0000 000C CD3000 CALL $0030 000F 23 INX H 0010 13 INX D 0011 03 INX B 0012 C30C00 JMP $000C |
最初にHL、DE、BCを0000にします。
その後は0.5秒ごとにHL、DE、BCを+1していくだけの簡単なプログラムです。
下はプログラムを実行中の写真です。
●DCX命令のテスト
DCX命令のテストです。
上のテストプログラムと逆の動作になります。
下のリストはDCX命令のテストプログラムです。
0000 310000 LXI SP,$0000 0003 210000 LXI H,$0000 0006 110000 LXI D,$0000 0009 010000 LXI B,$0000 000C CD3000 CALL $0030 000F 2B DCX H 0010 1B DCX D 0011 0B DCX B 0012 C30C00 JMP $000C |
最初にHL、DE、BCを0000にします。
その後は0.5秒ごとにHL、DE、BCを−1していきます。
下はプログラムを実行中の写真です。
●STA、LDA、STAX、LDAX命令のテスト
STA、LDA、STAX、LDAXの各命令のテストプログラムです。
いずれもAレジスタの値をメモリにSTORE、またはメモリからLOADする命令です。
STA、LDAはSTORE、LOADするメモリアドレスを直接指定します。
STAX、LDAXはメモリアドレスをBCレジスタ、DEレジスタで指定する「間接アドレッシング」命令です。
下のリストはSTA、LDA、STAX、LDAX命令のテストプログラムです。
0000 310000 LXI SP,$0000 0003 210000 LXI H,$0000 0006 115100 LXI D,$0051 0009 015000 LXI B,$0050 000C CD3000 CALL $0030 000F 23 INX H 0010 7D MOV A,L 0011 325200 STA $0052 0014 3A5200 LDA $0052 0017 12 STAX D 0018 1A LDAX D 0019 02 STAX B 001A 0A LDAX B 001B 6F MOV L,A 001C C30C00 JMP $000C |
HLに0000、DEに0051、BCに0050をセットしてスタートします。
HLレジスタを+1したあと、Lレジスタの値をAレジスタに入れます。
Aレジスタの値をSTA命令でアドレス0052に書き込み、すぐにLDA命令で読み出します。
次にSTAX DとLDAX Dで同じようにDEレジスタで示すメモリアドレス(0051)にAレジスタの値を書き込み、読み出しし、その次にSTAX BとLDAX BでBCレジスタで示すメモリアドレス(0050)にAレジスタの値を書き込み、読み出しし、その値をLレジスタに戻します。
この動作を0.5秒ごとに繰り返します。
下はプログラムを実行中の写真です。
今回の組立作業範囲のテストはほかにもまだあるのですが、本日は時間がなくなってしまいました。
残りのテストについては次回に説明します。
TTLでCPUをつくろう![第850回]
2018.2.24upload
前へ
次へ
ホームページトップへ戻る