area aidaiy1, data, readwrite
data1 dcd 2,5,0,3,-4,5,0,10,9
data2 dcd 3,5,4,-2,0,8,3,-10,5
sum dcd 0,0,0,0,0,0,0,0
area aidaiy, code, readonly
entry
code32
Start ldr r1, =data1
ldr r2, =data2
ldr r3, =sum
mov r0, #0
loop ldr r4, [r1], #04
ldr r5, [r2], #04
adds r4, r5
add r0, r0, #1
str r4, [r3], #04
bne loop
b Start
end
4 个解决方案
#1
[我把数据段 改为 readonly 就可以加载数据了 为什么? 不要沉、啊, 问题我已经 解决了 我和大家分享一下 在 memory map 中 自定义的数组 系统会自动分配到 0x40000000 开始的内存地址,但是在这个 range 内没有选择 exec(可执行) 选项 因此 无法加载数据 ,做法就是 将接下来类似的的几个全删掉, 自己再加上一个range (必须选上 exec 选项),,这样就可以了, 我想问一下你说的“将接下来类似的几个全删掉”是什么意思?删什么?然后那个exec选项是在哪里的?, 路过帮顶。
通常这类疑问我会重新梳理地址,数值,空间的联系和变化。]
通常这类疑问我会重新梳理地址,数值,空间的联系和变化。]
#1
[我把数据段 改为 readonly 就可以加载数据了 为什么? 不要沉、啊, 问题我已经 解决了 我和大家分享一下 在 memory map 中 自定义的数组 系统会自动分配到 0x40000000 开始的内存地址,但是在这个 range 内没有选择 exec(可执行) 选项 因此 无法加载数据 ,做法就是 将接下来类似的的几个全删掉, 自己再加上一个range (必须选上 exec 选项),,这样就可以了, 我想问一下你说的“将接下来类似的几个全删掉”是什么意思?删什么?然后那个exec选项是在哪里的?, 路过帮顶。
通常这类疑问我会重新梳理地址,数值,空间的联系和变化。]
通常这类疑问我会重新梳理地址,数值,空间的联系和变化。]