【3分钟秒懂】PowerPC 函数参数个数不超过多少为好

在上篇文章

【3分钟秒懂】结合汇编代码解析C函数入参与PowerPC芯片寄存器的关系

中我们已经知道PowerPC共有8个通用寄存器(r3,r4....r10)用于传递函数参数。

如果我们定义一个C函数,其入参超过8个,超出部分的参数将会怎么传递到函数体里呢?

下面我们通过一个函数实例进行分析和解答:

如下定义一个入参个数为9的函数,函数内部的具体代码不是本文的重点,可以忽略。


void CmnRingBufferWrite( UINT8  ringBufTotalItems,
                                 UINT8* pcur_writeIdx,
                                 UINT8  cur_readIdx,
                                 UINT8* psrc,
                                 UINT8* pdst,
                                 UINT8  itemSize,
                                 UINT32* msgCnt,
                                 UINT32  Cnt,
                                 UINT32* discardMsgCnt)
{ 
  ...........
}

调用该函数并分析调用处的编译出的汇编代码 可知前8个入参被存入了r3到r10,第9个入参被存入了栈指针指向的空间。

000026bc 189a8009 43

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值