arm 架构函数调用参数的传递

wjcapple 2018-10-08 05:19:46
arm的函数调用时,如果参数数目小于4,使用寄存器r0-r3进行传递,子函数内,再将参数拷贝到子函数栈中。这种传递参数的方式是脱裤子放屁还是另有深意?为何不直接使用x86的方式,由调用者将参数入栈,传递给子函数?arm的方式也不省空间,因为子函数还得将其从寄存器拷贝出来啊,何必多这几个操作。有图为证。欢迎拍砖。
​​​​
...全文
454 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
john_liqinghan 2018-10-10
  • 打赏
  • 举报
回复
参数少时通过register传输参数应该速度比栈的速度快吧。我觉得X86应该也差不多,参数应该是优先是给register的。
在递归上效率会有较大的不同。

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧