標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
やっと(!)MYCPU80の改良型基板製作に着手しました!!
[第855回]
●ANA、XRA、ORA、ANI命令のテスト
ANAは論理積ANDを計算する命令です。
XRAは排他的論理和XORを計算する命令です。
ORAは論理和ORを計算する命令です。
上記の3つの命令はそれぞれAレジスタと他のレジスタまたはメモリとの間で論理演算を行い結果をAレジスタに格納します。
ANIはAレジスタと8ビットの即値(定数)との間で論理積ANDを計算します。
同様にORI命令、XRI命令もありますが、ひとつテストすればよいはずと考えてANIのみテストしました。
下はANA、XRA、ORA、ANI命令のテストプログラムのリストです。
0000 3E91 MVI A,91 0002 E6F0 ANI F0 0004 4F MOV C,A 0005 3E91 MVI A,91 0007 06F0 MVI B,F0 0009 B0 ORA B 000A 57 MOV D,A 000B 3E91 MVI A,91 000D A8 XRA B 000E 5F MOV E,A 000F 210002 LXI H,$0200 0012 36F0 MVI M,F0 0014 A6 ANA M 0015 6F MOV L,A 0016 AF XRA A 0017 76 HLT |
最初にAレジスタの値91と定数F0のANDが計算され、結果の値90がCレジスタに入れられます。
次にAレジスタの値91とBレジスタの値F0のORが計算され、結果の値F1がDレジスタに入れられます。
次にAレジスタの値91とBレジスタの値F0のXORが計算され、結果の値61がEレジスタに入れられます。
次にAレジスタの値61とメモリアドレス0200の値F0のANDが計算され、結果の値60がLレジスタに入れられます。
最後にXRA Aが実行され、その結果Aレジスタがクリアされて00になります。
以上が実行されたあとHLT命令が実行されます。
XRA AはAレジスタの値同士のXORを計算します。
同じ値同士のXORの結果は00になります。
つまりAレジスタの値が何で合っても結果が00になるのでXRA AはAレジスタをゼロクリアする命令として利用されます。
ANA、XRA、ORA、ANI命令テストプログラムを実行中の写真です。
論理演算は基板上部の論理演算回路で計算されます。
写真では最後に計算されたXRA Aの結果が表示されています。
シルク印刷の文字が小さくてちょっと読みにくいですが、左からALU register’A’、ALU register’B’、ALU AND、ALU OR、ALU XORです。
’A’と’B’との間で論理演算が行なわれその結果が右のAND、OR、XORにそれぞれ表示されます。
計算前のAレジスタの値は60で、その60同士でXORを計算しますから、’A’も’B’も60になっています。
最後の論理演算はXORですが、論理演算を行なうときはいつも同時にAND、OR、XORが計算されます。
60と60のANDは60でORも60ですがXORは00になります。
TTLでCPUをつくろう![第855回]
2018.3.1upload
前へ
次へ
ホームページトップへ戻る