要求:从0x30500000开始的内存区域存放着若干字节的BCD码数据,并以0x0D结束。编程对这些数据进行累加和计算,取累计和的前两个字节放到这个数据结束字符之后的两个字节中,并把数据个数写入后一个单元。
代码如下:
AREA EXAMPLE2,CODE,READONLY
ENTRY
CODE32
MYADD MOV R0,#0
LDR R2,=0x30500000
LOPPA LDRB R3,[R2]
CMP R3,#0x0D
BNE LOPPOUT
STRH R1,[R2+1]
STR R0,[R2+3]
END
LOPPOUT ADD R1,R1,R3
ADD R2,R2,#1
B LOPPA