我正在学习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”的行是什么意思。我在教授的讲义中提到了它,它只是说它指的是溢出寄存器。我只是用谷歌搜索了它,但我对它的理解还不够好,无法理解上面的代码。有人可以向我解释吗?谢谢!