这是什么ARM汇编程序呢? [英] What does this ARM assembly program do?

查看:218
本文介绍了这是什么ARM汇编程序呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人能向我解释这个ARM汇编程序做什么?

  .L5:
    .worddata
    .wordtotal
_开始:
    LDR IP,.L5
    MOV R1,#0
    LDR R0,.L5 + 4
    MOV R3,R1
    MOV R2,R1
    LDR IP,[IP,#0]
    STR R1,[R0,#0]
.L2:
    LDR R1,[IP,R3]
    添加R3,R3,#4
    CMP R3,#64
    ADD R2,R2,R1
    STR R2,[R0,#0]
    BNE .L2


解决方案

这个功能似乎是微不足道的和愚蠢的在同一时间。

 的extern为int * worddata;
EXTERN挥发性INT wordtotal;无效启动(无效)
{
  INT I,温度;
  wordtotal = 0;
  对于(i = 0; I< 16; ++ I)
  {
    TEMP = worddata [I]
    wordtotal + =温度;
  }
}

玩得开心。

Can somebody explain to me what this ARM assembly program does?

.L5:
    .worddata
    .wordtotal
_start:
    ldr ip, .L5
    mov r1, #0
    ldr r0, .L5+4
    mov r3, r1
    mov r2, r1
    ldr ip, [ip, #0]
    str r1, [r0, #0]
.L2:
    ldr r1, [ip, r3]
    add r3, r3, #4
    cmp r3, #64
    add r2, r2, r1
    str r2, [r0, #0]
    bne .L2

解决方案

This function seems to be trivial and stupid at the same time.

extern int * worddata;
extern volatile int wordtotal;

void start(void)
{
  int i, temp;
  wordtotal = 0;
  for (i = 0; i < 16; ++i)
  {
    temp = worddata[i];
    wordtotal += temp;
  }
}

Have fun.

这篇关于这是什么ARM汇编程序呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆