如何使用 ARM 程序集声明多个数组值并将其加载到 RAM 中?

How to declare and load multiple array values into RAM with ARM assembly?

我想像在 C 中那样在内存中创建一个数组

int i[] = {0,2,3,124,324,23,3,2}

如何在 ARM 汇编中执行此操作?显然我可以像这样声明一些值:

AREA     mydata, DATA
array    DCD 0,2,3,124,324,23,3,2

但是如何以最简单的方式将它们复制到内存中呢?

当您 assemble/link 一个包含您指定的行的文件时,这些值将已经存储在 RAM 中。将有一个名为 'array' 的符号,它表示指向数据的指针。

如果您希望从另一个文件访问该符号,您还需要向包含定义的文件添加一个 EXPORT 指令,例如

EXPORT array

并在您希望使用该符号的文件中添加一个 IMPORT 指令,例如

IMPORT array

您还可以通过查看编译器的汇编语言输出来检查汇编语法,该编译器编译一个包含您的 i 声明的普通源文件。