ARM 寄存器内存增长与消减

背景:

由于一些任务上需要用到crash tool 来分析系统的崩溃问题,要对内存进行推栈分析

ARM 寄存器

在这里插入图片描述

AArch64架构提供了31个通用寄存器,每个寄存器都可以用作64位X寄存器(X0~X30)32位W寄存器(W0~W30)。对于数据处理指令,X或W的选择决定了操作的size。使用X寄存器将导致64位的计算,使用W寄存器将导致32位的计算。当写入W寄存器时, 64位寄存器的高32位为零。

在这里插入图片描述

X0: 也称为零寄存器,用于存储函数的返回值、传递函数参数和临时存储变量。

X1-X7: 用于传递函数参数和临时存储变量。

X8: 也称为程序计数器(PC),用于存储当前正在执行的指令的地址。当处理器执行一条指令时,PC会自动递增以指向下一条指令。

X9-X15: Caller Saved寄存器,用于存储函数参数、局部变量和临时数据。

X16-X17: 也称为临时寄存器,用于存储临时数据,这些寄存器在函数调用期间不需要保留其值。

X18: 也称为平台相关寄存器,用于存储与特定平台相关的信息,如TLS(线程本地存储)指针。

X19-X28: Callee Saved寄存器,于存储函数参数、局部变量和临时数据。

X29: 也称为帧指针寄存器(Frame Pointer,FP),用于存储当前函数的堆栈帧指针。当函数调用发生时,x29寄存器的值被保存到堆栈中,以便在函数执行期间可以轻松地访问上一级函数的堆栈帧。这样,当函数返回时,可以通过恢复x29寄存器的值来恢复到正确的堆栈帧。

X30: 也称为链接寄存器(Link Register,LR),用于存储函数调用的返回地址。当函数执行完毕时,处理器将使用x30寄存器中存储的返回地址来恢复到调用点。这样&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值