【问题标题】:PowerPC Assembly: How to pass and return multiple arguments?PowerPC Assembly:如何传递和返回多个参数?
【发布时间】:2013-06-25 22:51:48
【问题描述】:

我正在学习 PPC 组装,但很难理解以下关于子例程调用的内容:

哪些寄存器可用于将参数传递给子例程?我认为是R3到R12? 当寄存器用完时如何传递参数?我可以看看这个的代码示例吗?

传回返回值时,只能使用R3吗?据我了解,您只能使用此寄存器返回单个值。如果您需要返回更多值,那么您返回指向这些值的指针?我也可以看到一个代码示例吗?

【问题讨论】:

    标签: assembly subroutine powerpc


    【解决方案1】:

    如果你用汇编语言编写,你可以做任何你想做的事。只有当您想与某些外部代码(可能是库,可能是系统调用)交互时,您才需要遵守调用约定。有些架构有多个不同的 ABI,所以你必须小心。

    如果我没记错的话,几乎每个人都对 32 位 PowerPC 使用相同的调用约定,所以this Apple reference 应该有你需要知道的一切。正如您所提到的,参数通常在 R3-R10 中传递,返回值放在 R3 中。 This tutorial 似乎表示相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      相关资源
      最近更新 更多