0
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.

4

1 に答える 1

1

レジスタLOOP1へのラベルで余分なデクリメント(その後にインクリメントが続く)を行っている理由はわかりませんが、1つが0になると、ラップアラウンドして乗算ループをさらに255回実行します。BBCFFh

代わりに、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
于 2015-12-29T05:05:43.153 に答える