ARM汇编数组中的一个结构

时间:2017-01-09 22:39:38

标签: assembly raspberry-pi arm

所以我需要编写一个带有3个参数的函数,所有参数都是结构体,主文件是用C语言编写的,而ARM函数是用ARM程序集编写的。所以我想问一下如何处理这些结构中的数据?因为所有数据都单独存储在每个寄存器中。

e.g。 -

Struct contains an int and an array
Struct { int a, int b[] }

function(struct a, struct b, struct c)

因此汇编中的数据存储为R0=struct a. int aR1=struct a. int b[0]

我尝试在堆栈上推送所有东西,但我得到同样的东西。那么如何操作所有结构中的数组呢?

1 个答案:

答案 0 :(得分:1)

在C中写下你想要做的事情,然后编译它并查看反汇编。 GUI编译器将具有保存中间组件的选项。其他命令行编译器应该具有相同的,或者您可以运行objdump -d *.obj来反汇编目标文件。

每个平台和ABI略有不同,你最好让编译器给你一个例子。