如题所述
第1个回答 2017-01-05
该程序实现数组累加,遇到数组元素为零时,结束。
已经测试,正确!放心使用!
.text
.global _start@程序入口,相当于C中main
_start:
ldr r0,=arr @ 伪指令ldr r0指向数组的首地址
c: @跳转位置
ldr r1,[r0] @取r0中的内容,赋给r1
add r7,r1 @将r7和r1相加,赋给r7
cmp r1,#0 @比较数组中当前取值是否为零
ldrne r1,[r0],#4
@ ldr+ne(助记符后缀),从数组中取元素,赋r1寄存器,r0内存的是地 址, 偏移量#4, 指 向下一个元素
cmp r1,#0 @比较数组中当前取值是否为零,为零结束
bne c @b(跳转指令)+ne(助记符后缀),跳至C:位置,进行循环。ne判断上层cmp指令的结果不相等,继续,相等则程序结束
.data
arr: @数组名
.word 0x11,0x22,0x33,0x44,0x55,0 @定义数组 .word 六个元素,
.end
本回答被网友采纳