arm中数组内的元素相加相加

如题所述

第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

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网