分享

程序员必修语言——汇编(函数的参数和返回值)

 山峰云绕 2018-07-26

函数的参数和返回值

程序员必修语言——汇编(函数的参数和返回值)

首先我们新建一个项目.然后写一点代码.来到main.m文件.

程序员必修语言——汇编(函数的参数和返回值)

然后选择真机.断点调试sum函数处.如下图

程序员必修语言——汇编(函数的参数和返回值)

运行!然后我们看一下汇编代码.选择Xcode的Debug->Debug Workflow->Always Show Disassembly 可以调试查看汇编指令

程序员必修语言——汇编(函数的参数和返回值)

然后当我们进入到sum函数里面之后.看下sum函数中的汇编指令.如下图

程序员必修语言——汇编(函数的参数和返回值)

可以看到.参数取出来进行加法运算是从w1和w0(x0,x1的低32位) 里面取出来的.

有了这样一个结论.我们就可以使用ARM汇编.写一个不严谨的求和的函数了

新建一个.s文件,代码如下

程序员必修语言——汇编(函数的参数和返回值)

main.m文件代码

程序员必修语言——汇编(函数的参数和返回值)

运算结果没问题.

那么我们可以发现.在汇编中,x0保存的是我们函数的返回值.

ARM64下,函数的参数通常情况下是存放在X0到X7(W0到W7)这8个寄存器里面的.如果超过8个参数,就会入栈.

函数的返回值通常情况下是放在X0 寄存器里面的.

补充:看完记得关注哦!!!

以后每天更新汇编系列知识,以上内容接着上一篇阅读,关注作者获取每天更新知识

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多