函数调用参数超过四个的传递方法

 新闻资讯     |      2023-07-04 16:32

众所周知,ARM架构下,函数参数是通过 r0~r4寄存器传递的;但是如果参数超过四个,就要借助于栈了。

下面以一个例子说明。

ARM架构:函数调用参数超过四个的传递方法

main()的汇编凯发旗舰厅如下:

ARM架构:函数调用参数超过四个的传递方法

这个时候(执行到箭头指向的位置),栈的状态如下:

ARM架构:函数调用参数超过四个的传递方法

函数 func的汇编如下:

ARM架构:函数调用参数超过四个的传递方法

此时,栈状态如下:

ldr r3, [r11, #4]

上面这一句汇编代码就是从栈上取回保存的第5个参数的值。

ARM架构:函数调用参数超过四个的传递方法

唯样商城(www.oneyac.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快

速交付的采购需求。唯样自建高效智能仓储,拥有自营库存超70,000种,提供一站式正品现货采购、个性化解决方案、选项替代等多元化服务。

(本文来源网友上传,如有侵权,可联系管理员删除)