首先我们新建一个项目.然后写一点代码.来到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 寄存器里面的.