以下は、2、8ビットの数値を乗算するために私が書いたプログラムです。私の友人の一人は、プログラムが間違っていると言った。確認できなかったので、確認したかったのです。アセンブリプログラミングを学び始めたばかりです。次のプログラムは、多くのレジスタを使用します。
LDA C001H
MOV B,A
LDA C002H
MOV D,A
MOV C,0H
CMP C
JZ ZRESULT // CHECKED FOR C002
MOV A,B
CMP C
JZ ZRESULT // CHECKED FOR COO1
LOOP : ADD A
MOV E,A
LDA 01H
DEC D
CMP D
JZ ANSWER
JNZ LOOP
ZRESULT : LDA 0H
STA 2500H
OUT PORT1
ANSWER : MOV A,E
STA 2500H
OUT PORT1
このプログラムは正しいですか?そうでない場合は、その中の修正を教えてください。