MVI B 07h
LXI H 0007h
LXI D 0007h
DCR B
LOOP1: DCR B
MOV C B
INR B
LOOP: DAD D
DCR C
JNZ LOOP
MOV E L
MOV D H
DCR B
JNZ LOOP1
HLT
コードの問題を見つけることができませんでした。助けてもらえますか?それは私に部分的に間違った答えを与えています。2 つのLSB
ビットは正しいですが、MSBs
.
MVI B 07h
LXI H 0007h
LXI D 0007h
DCR B
LOOP1: DCR B
MOV C B
INR B
LOOP: DAD D
DCR C
JNZ LOOP
MOV E L
MOV D H
DCR B
JNZ LOOP1
HLT
コードの問題を見つけることができませんでした。助けてもらえますか?それは私に部分的に間違った答えを与えています。2 つのLSB
ビットは正しいですが、MSBs
.
レジスタLOOP1
へのラベルで余分なデクリメント(その後にインクリメントが続く)を行っている理由はわかりませんが、1つが0になると、ラップアラウンドして乗算ループをさらに255回実行します。B
B
C
FFh
代わりに、DCR B
/INR B
を削除して、乗算ループの前にH
レジスタを 0 に設定してください。完全なプログラムは次のようになります。
MVI B, 07h
LXI H, 0007h
LXI D, 0007h
DCR B
LOOP1:
MOV C, B
LXI H, 0
LOOP:
DAD D
DCR C
JNZ LOOP
MOV E, L
MOV D, H
DCR B
JNZ LOOP1
HLT