0
我要像我将会用C与如何使用ARM程序集将多个数组值加载到RAM中?
int i[] = {0,2,3,124,324,23,3,2}
如何做到这一点的ARM汇编在内存中创建一个数组?显然我可以声明一些像这样的值:
AREA mydata, DATA
array DCD 0,2,3,124,324,23,3,2
但如何将它们复制到RAM中以最简单的方式?
我要像我将会用C与如何使用ARM程序集将多个数组值加载到RAM中?
int i[] = {0,2,3,124,324,23,3,2}
如何做到这一点的ARM汇编在内存中创建一个数组?显然我可以声明一些像这样的值:
AREA mydata, DATA
array DCD 0,2,3,124,324,23,3,2
但如何将它们复制到RAM中以最简单的方式?
当你用给出的行组装/链接文件时,这些值已经存储在RAM中。将会有一个名为'数组'的符号表示一个指向数据的指针。
如果您想从另一个文件访问符号,你还需要一个EXPORT指令添加到包含定义的文件,如
EXPORT array
,并在那里加一个IMPORT指令文件你要使用的符号,如
IMPORT array
您也可以通过查看从编译包含你我的声明中的琐碎的源文件编译器输出的汇编语言检查汇编语法。
数组应存储在哪个内存位置?我预计它在0x20000000,但事实并非如此。 – JohnnyFromBF 2015-04-06 10:27:57
链接器将根据自己的算法放置符号。你可以用'LDR r0,= array'来获得一个指向数组的指针,这会将数组的地址加载到r0中 – 2015-04-06 11:01:29