汇编语言输入任意一个N求1+2+3+……+N,输出结果放在SUM中

如题所述

呵呵
我不知道
你是怎么输入数据的
我就当你是从P1口并行输入的
SUM
EQU
30H
;定义SUM存储空间为ARM30H
.....
MOV
R2,P1
;判断是否循环的标志位
ADD_1:
MOV
R1,R2
CLR
A
ADD
A,R1
DJNZ
R2
ADD_1
;若R2减一不为零就循环相加
.....
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-09
1.若N小于22,结果小于255,可以用一个字节存放
SUM
EQU
30H
N
EQU
31H
...
MOV
R7,N
CLR
A
MOV
R6,#00H
XADD:ADD
A,R6
INC
R6
DJNZ
R7,XADD
MOV
SUM,A
...
2.若N大于22,则算出来结果大于一个字节,所以一个sum中肯定不够存。
N为0到255时
现假设结果存于:SUM1,SUM0
SUM
EQU
30H
N
EQU
31H
...
MOV
R7,N
CLR
A
MOV
R6,#00H
MOV
R5,#00H
;暂存SUM0
MOV
R4,#00H
;暂存SUM1
XADD:ADD
A,R6
MOV
R5,A
MOV
A,R4
ADDC
A,#00H
MOV
R4,A
MOV
A,R5
INC
R6
DJNZ
R7,XADD
MOV
SUM0,R5
MOV
SUM1,R4
相似回答
大家正在搜