一个汇编语言8085
程序,用于计算前 20 个偶数(8 位)的总和并将结果存储在位置6000
和6001
。我试过但无法完成
MVI c,00H
MOV B, C
MOV D, 00H
NEXT:
INX, H
不要使用循环,因为现在使用汇编最常见的原因是速度。
n
偶数之和2, 4, 6, ...
等于n(n + 1)
。(或者,当然n(n + 1) - 2
,当您从 . 开始时0, 2, 4, ...
。)
先用伪代码写出来:
sum := 0 ; init sum
num := 2 ; init first even number
count := 20 ; init loop counter
loop:
sum := sum + num ; accumulate sum
num := num + 2 ; next even number
count := count - 1 ; decrement loop count
IF count > 0 THEN GOTO loop ; if loop count still positive then next num
store sum -> 6000/6001 ; else we're done - store the result
从这里将伪代码转换为 8085 操作码应该非常简单。
要测试一个数字在汇编中是偶数还是奇数,只需测试最不重要的位即可。所以你只需要一个循环来增加一个值并重复测试这个位。如果是,则将其添加到您的总和中。
sum = 0
value = 0
found = 0
loop:
if found == 20
goto done
if value & 1
sum += value
found = found + 1
value = value +1
goto loop
done:
print sum
好吧,为了获得最佳性能,手动计算结果,然后用两条左右的指令将其存储在内存中。