私はARMの手順について学んでおり、教授の講義ノートには例として次のコードがあります。
int leaf_examp(int g, int h,
int i, int j)
{
int f;
f = (g+h)-(i+j);
return f;
}
彼は、上記の手順に対応する ARM コードとして以下を示しています。
Leaf_examp:
SUB sp, sp, #12
STR r6, [sp,#8]
STR r5, [sp,#4]
STR r4, [sp,#0]
ADD r5, r0, r1
ADD r6, r2, r3
SUB r4, r5, r6
MOV r0, r4
LDR r4, [sp,#0]
LDR r5, [sp,#4]
LDR r6, [sp,#8]
ADD sp, sp, #12
MOV pc, lr
上記のコードで「sp」を含む行の意味がわかりません。教授の講義ノートで参照しましたが、Spilling Registers を参照しているとだけ書かれています。私はそれをグーグルで検索しましたが、上記のコードを理解するのに十分なほどよく理解していません. 誰かが私にそれを説明できますか?ありがとう!