栈空间排布,数据相关内容

在这里插入图片描述
上面是画的简单的栈。
LD寄存器
LR(Link Register),连接寄存器的英文缩写,在ARM体系结构中LR的特殊用途有两种:一是用来保存子程序返回地址;二是当异常发生时,LR中保存的值等于异常发生时PC的值减4(或者减2),因此在各种异常模式下可以根据LR的值返回到异常发生前的相应位置继续执行。

LR 用来跳转回原来的函数

可以从反汇编得到
stmdb sp! {r4,r5,r6,r7,r8,fp,ip,lr,pc}
stmdb sp! {fp,ip,lr,pc}
等等 这样的汇编指令
说明了 这个函数的栈空间里面有几类数值

关于栈空间多大? 那么就是 n(栈空间里面有几类数值)+sp更多偏移值 注意 栈空间里面有几类数值 都是32位的,以上寄存器(r4,r5,r6,r7,r8,fp,ip,lr,pc)寄存器。都是32位的,当然是因为在 32位cpu。