写一段 ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一段 ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中.相关的知识,希望对你有一定的参考价值。

谢谢各位大腿0.0

小学文化不懂啥是循环队列,也不懂C语言。
如果是一定地址之间循环的数组的话可以参照下我下面写的。
r4貌似要存不了这么大的数啊

汇编器 arm-none-eabi-as

.equ myarray, 0x20000018
.equ duiliechangdu, 40

ldr r0, = myarray
ldr r3, = duiliechangdu
mov r1, r3
mov r2, # 0
mov r4, # 0
dd1:
ldr r2, [r0, r1]
add r4, r4, r2
cmp r2, # 0
beq tiaochuqu
subs r1, # 4
bne dd1
mov r1, r3
b dd1
tiaochuqu:
b tiaochuqu
参考技术A 给大家推荐老谭的答案
AREA Cond_Sum,CODE,READONLY
ENTRY LDR R0,=Array MOV R4,#0
LDR R1,[R0],#4 LooPCtl
6/11页
CMP R1,#0
ADDNE R4,R4,R1 BNE LooPCtl
B Wait Wait
AREA SrcData,CODE,READONLY
DCD 0x11 DCD 0x22 DCD 0x33 DCD 0 Array
END

用arm的汇编语言,求1到50的累加和,记住是arm下的汇编语言

将一个存储空间设置为1,预先留两个存储空间,一个用来做加数,一个用来做和数。这个程序需要循环,50次。

第一条指令是设置一个循环标示,

第二条指令存将初值为1的存储空间的数取出存入加数的存储空间。

第三条指令初值为1的那个空间自增1,相加后存到和数中去。

第四条指令,判断循环是否需要结束。

扩展资料:

汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在底层,通常是程序优化或硬件操作的场合。

参考资料来源:百度百科-汇编语言

参考技术A 将一个存储空间设置为1,预先留两个存储空间,一个用来做加数,一个用来做和数。这个程序需要循环,50次。第一条指令是设置一个循环标示,第二条指令存将初值为1的存储空间的数取出存入加数的存储空间。第三条指令初值为1的那个空间自增1,相加后存到和数中去。第四条指令,判断循环是否需要结束。(指令全忘了) 参考技术B START:mov r1, #0

mov r2, #50
add r1,r1,r2
sub r2,r2,#1
bnz START

以上是关于写一段 ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中.的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 5. Python 循环的本质就是一段代码懒得重复写

设置一个ARM汇编使用(GNU)使用c中的函数实现两数组对应位相乘后进行累加,回答详细可随意加分,如下程序:

如何通过ARM更新Azure Service Bus的队列/主题?

ES6 promise

JavaScript - myArray.forEach 与 for 循环的细微差别

Todo转载Java中如何写一段内存泄露的程序