如何使用 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 声明的普通源文件。
我想像在 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 声明的普通源文件。