下面是我寫的乘以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
該程序是否正確?如果不是,請告訴它的更正。
如果您嘗試將一堆數字相乘並檢查結果,您可以對程序更有信心:特別檢查一個或多個數字是否爲「0」,「1」,「2」,「3」兩個數字,一個大於或小於兩個冪的數字,以及強制溢出的輸入。 – sarnold 2012-02-09 04:16:04