汇编语言8085
程序,用于计算前20个偶数(8位)的总和,并将结果存储在位置6000
和6001
。我试过但无法完成
MVI c,00H
MOV B, C
MOV D, 00H
NEXT:
INX, H
答案 0 :(得分:2)
不要使用循环,因为现在使用装配的最常见原因是速度。
n
偶数2, 4, 6, ...
的总和等于n(n + 1)
。 (或者当你从n(n + 1) - 2
开始时,当然是0, 2, 4, ...
。)
答案 1 :(得分:1)
首先用伪代码写出来:
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操作码应该非常简单。
答案 2 :(得分:0)
要测试汇编中的数字是偶数还是奇数,只需测试最不重要的位。因此,您只需要一个增加值的循环并重复测试该位。如果是,则将其添加到您的总和中。
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
答案 3 :(得分:0)
嗯,要获得最佳性能,请手动计算结果,然后用两条左右的指令将其存储在内存中。