gpt4 book ai didi

c - 如何将参数传递给函数,从 Assembly 到 C

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:36 25 4
gpt4 key购买 nike

我正在使用 HCS08 和 Code Warrior。我正在从程序集调用 C 函数。如何将参数传递给此 C 函数?

最佳答案

您需要的是适用于您平台的 ABI,或应用程序二进制接口(interface)。这将解释诸如如何将参数传递给函数(寄存器、堆栈、混合)、哪些寄存器是调用者保存而哪些是被调用者保存、某些寄存器的特殊用途等内容。通过遵循通用 ABI,您可以链接由不同编译器构建的库、混合高级语言等。

对于“大”平台,通常很容易找到指定 ABI 的文档。对于其他人,您可能不得不依赖反汇编 C 函数并查看它的作用。注意它在其序言中保存了哪些寄存器以及它可能会破坏哪些寄存器。还要注意序言如何在入口处保存堆栈指针(或帧指针),因为如果您希望调试器工作,您将不得不模仿它。

看起来 HCS08 的调用约定由飞思卡尔记录在 an appnote 中.

关于c - 如何将参数传递给函数,从 Assembly 到 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3993000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com