トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第282回]
●MMU回路(8)動作テスト(その3)全メモリ範囲を対象にしたテストプログラム#2(前回の続き)
前回の続きです。
前回はアドレス82のところで終りました。
その続きです。
アドレス9Fです。
前回のアドレス82のときの結果の値36に+9の計算が行なわれた結果36+9=45(16進数2D)がレジスタに表示されています。
アドレスAFです。
上の結果の値45に+10の計算が行なわれた結果45+10=55(16進数37)がレジスタに表示されています。
アドレスBFです。
上の結果の値55に+11の計算が行なわれた結果55+11=66(16進数42)がレジスタに表示されています。
アドレスD4です。
上の結果の値66に+12+13までの計算が行なわれた結果66+12+13=91(16進数5B)がレジスタに表示されるところなのですが、上位桁への繰り上がりが発生するため現在はその計算途中の状態が表示されています。
この時点では66+12=78(16進数4E)の計算が完了していて、そこに+13(+D)が加算される途中の状態です。
メモリアドレスはD4ですがCLKは0表示なので丁度アドレスD3の命令の実行が終った直後の状態と思われます。
アドレスD3の命令コードは20なのでLD A,Bです([第279回]、[第249回]参照)。
上位桁への繰り上がり前の値4がAレジスタとBレジスタに表示されています。
アドレスE4です。
上の結果の値91に+14の計算が行なわれた結果91+14=105(16進数69)がレジスタに表示されるところなのですが、上位桁への繰り上がりが発生するため現在はその計算途中の状態が表示されています。
この時点では上の計算結果91(16進数5B)に+14(+E)が加算される途中の状態です。
メモリアドレスはE4ですがCLKは0表示なので丁度アドレスE3の命令の実行が終った直後の状態と思われます。
アドレスE3の命令コードは20なのでLD A,Bです([第279回]、[第249回]参照)。
上位桁への繰り上がり前の値5がAレジスタとBレジスタに表示されています。
アドレスF3です。
上の結果の値105に+15の計算が行なわれた結果105+15=120(16進数78)がレジスタに表示されるところなのですが、上位桁への繰り上がりが発生するため現在はその計算途中の状態が表示されています。
この時点では上の計算結果105(16進数69)に+15(+F)が加算される途中の状態です。
アドレスF3の命令コードは20なのでLD A,Bです([第279回]、[第249回]参照)。
ただCLK表示を見ると10(2)なのでまだBレジスタの値はAレジスタにはロードされていません。
そのためAレジスタには下位桁の加算結果が表示されていて、Bレジスタには上位桁への繰り上がり前の値6が表示されています。
アドレス04です。
最後まで計算が終ってアドレス03に戻り、Aレジスタの値がOUTポートに出力されたあと、アドレス04のHLTが実行されています。
トランジスタでCPUをつくろう![第282回]
2020.12.29upload
前へ
次へ
ホームページトップへ戻る