栈空间排布,数据相关内容
上面是画的简单的栈。
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。

相关文章:

  • 2021-12-16
  • 2021-07-05
  • 2021-09-09
  • 2021-05-04
  • 2022-12-23
  • 2021-08-06
  • 2022-12-23
  • 2021-11-01
猜你喜欢
  • 2021-08-01
  • 2022-12-23
  • 2022-01-26
  • 2021-10-17
  • 2022-12-23
  • 2022-02-22
  • 2021-08-09
相关资源
相似解决方案