2017-01-09 60 views
0

所以我需要編寫一個帶有3個參數的函數,所有的參數都是結構體,主文件是用C語言編寫的,而函數是在ARM彙編中的。所以我想問一下如何操縱這些結構中的數據?因爲所有數據都存儲在每個寄存器中。在一個結構中的ARM彙編數組

例如 -

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

在C中編寫你想要做的事,然後編譯它並查看反彙編代碼。 GUI編譯器將有選項來啓用保存中間程序集。其他命令行編譯器應該具有相同的內容,或者您​​可以運行objdump -d *.obj來反彙編目標文件。

每個平臺和ABI稍有不同,你最好讓編譯器給你一個例子。