【发布时间】:2013-10-20 07:05:17
【问题描述】:
我目前正在为一门课程学习 ARM 汇编,但遇到了需要使用“数组”的问题。我知道 ARM 中没有数组这样的东西,所以我必须分配空间并将其视为数组。我有两个问题。
- 我是在向数组中正确添加新值还是只是覆盖了以前的值?如果我要覆盖这些值,我该如何添加新值?
- 如何循环遍历数组的不同值?我知道我必须使用
loop:,但不知道如何使用它来访问不同的“索引”。
到目前为止,这是我从在线资源中收集的阅读 ARM 文档所得到的。
.equ SWI_Exit, 0x11
.text
.global _start
_start: .global _start
.global main
b main
main:
ldr R0, =MyArray
mov R1, #42
str R1, [R0], #4
mov R1, #43
str R1, [R0], #4
swi SWI_Exit
MyArray: .skip 20 * 4
.end
作为旁注,我按照教授的要求使用ARMSim#,因此 GNU 工具识别的某些命令不会被 ARMSim# 识别,或者至少我认为是这种情况。如果我错了,请纠正我。
【问题讨论】:
-
为什么投反对票?是的,这与家庭作业部分相关,但我可以看到这些信息对其他人有用,而且我不是在问如何完成我的作业。
-
如果你想这样说明,在任何处理器系列中都没有数组这样的东西,而不仅仅是 arm。数组实际上并不存在,它们只是从某处开始的一团内存。许多指令集,当然是 arm,都支持寄存器偏移寻址模式,让您能够获得纯粹的数组感觉。我以后会小心地做出你所做的声明。
-
@dwelch 啊,谢谢你的注意,对我的理解有很大帮助。我还要记住不要称它们为数组