2017-01-09 10 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はわずかに異なりますので、コンパイラで例を挙げてみることをお勧めします。