为 Intel 8085 微处理器编写一个汇编语言程序,计算 N 个自然数之和,即 ΣN = 1+2+3+ … +(N-1)+N。
尽可能多地满足约束:
- 不使用 N*(N+1) / 2 的公式
- 不使用任何递增和递减指令,如 INR、DCR、INX 和 DCX
- 不使用内存地址读取数据和写入输出结果(假设累加器寄存器相同)
我的代码是:
START: LDA 3000H
MOV B, A
INR A
MOV C, A
MVI A, 00H
LOOP1: ADD B
DCR C
JNZ LOOP1
MVI C, 02H
MVI B, 00H
LOOP2: INR B
SUB C
JNZ LOOP2
MOV A,B
STA 3001H
HLT
我已经尝试并制作了该程序,但使用了所有这些约束,而问题要求不要使用它们。所以我怀疑是否可以不使用这些来制作程序。