ARM汇编指令编程之内存单元填入整数并累加
题目:对内存地址0X3000开始的100个字内存单元填入0X10000001---0X10000064,将每个字单元进行64位累加,结果送入其后的容闲内存单元。
实验软件:ARM Developer Suite V1.2
代码:
AREA test,CODE,READONLY
ENTRY
CODE32
START
MOV R0,#0X3000
MOV R1,#0X10000001
MOV R2,#100
LOOP_1
STR R1,[R0],#4
ADD R1,R1,#1
SUBS R2,R2,#1
CMP R2,#0
BNE LOOP_1
MOV R9,R0
MOV R0,#0X3000
MOV R2,#100
MOV R8,0
LOOP_2
LDR R1,[R0],#4
ADDS R8,R1,R8
SUBS R2,R2,#1
CMP R2,#0
BNE LOOP_2
STR R8,[R9]
STOP
B STOP
一些注释:
R0用来记起始内存地址,R2是迭代计数器,Loop_1用来将整数写到内存中,而R2用来累加并把最后的和(用R8存)存入内存。
结果截屏:
此文章本人原创,如有问题底部留言,如有转载请标明出处。 --HurryChen
Happy Coding!
*\( ^ v ^ )/*