社区
Linux/Unix社区
帖子详情
arm 架构函数调用参数的传递
wjcapple
2018-10-08 05:19:46
arm的函数调用时,如果参数数目小于4,使用寄存器r0-r3进行传递,子函数内,再将参数拷贝到子函数栈中。这种传递参数的方式是脱裤子放屁还是另有深意?为何不直接使用x86的方式,由调用者将参数入栈,传递给子函数?arm的方式也不省空间,因为子函数还得将其从寄存器拷贝出来啊,何必多这几个操作。有图为证。欢迎拍砖。
...全文
502
1
打赏
收藏
arm 架构函数调用参数的传递
arm的函数调用时,如果参数数目小于4,使用寄存器r0-r3进行传递,子函数内,再将参数拷贝到子函数栈中。这种传递参数的方式是脱裤子放屁还是另有深意?为何不直接使用x86的方式,由调用者将参数入栈,传递给子函数?arm的方式也不省空间,因为子函数还得将其从寄存器拷贝出来啊,何必多这几个操作。有图为证。欢迎拍砖。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
john_liqinghan
2018-10-10
打赏
举报
回复
参数少时通过register传输参数应该速度比栈的速度快吧。我觉得X86应该也差不多,参数应该是优先是给register的。
在递归上效率会有较大的不同。
ARM
架构
下的
函数调用
过程
ARM
架构
下的
函数调用
过程包括
参数
传递
、寄存器保存、跳转到被调用函数、栈帧的设置、寄存器的使用、函数返回和寄存器恢复等步骤。寄存器保存:在调用函数之前,调用者需要保存一些寄存器的值,以防止被调用函数修改...
ARM
架构
下的
函数调用
过程解析
总结起来,
ARM
架构
下的
函数调用
过程涉及
参数
传递
、寄存器保存与恢复、栈操作以及跳转指令的使用。在
ARM
架构
下,
函数调用
的过程涉及到栈的使用、寄存器的保存和恢复以及指令的跳转。在
ARM
架构
中,常用的需要保存的...
ARM
v8——
函数调用
参数
传递
对于
ARM
32
架构
,
函数调用
时前4个
参数
用通用寄存器 (R0~R3),其余的
参数
的用栈
传递
。对于
ARM
64
架构
,
函数调用
时前8个
参数
用通用寄存器 (X0~X7),其余的
参数
的用栈
传递
。分别使用32位和64位交叉编译器生成汇编文件...
Arm
架构
函数调用
和栈结构分析(1)
经过对示例代码的每一个汇编指令的详细解析,我们现在能够构建出
Arm
架构
下的
函数调用
和栈结构了,后期我会补上从f 0到f 3调用栈的栈结构图,届时就能一目了然了!在下一篇文章中,我将探究main函数执行之前,glibc做...
Linux/Unix社区
18,830
社区成员
11,493
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 专题技术讨论区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章