这是什么ARM汇编程序呢? [英] What does this ARM assembly program do?
本文介绍了这是什么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屋!
查看全文