将 ada 与汇编混合

发布于 2024-11-18 14:12:05 字数 115 浏览 4 评论 0原文

如何将 Ada 代码与汇编代码(使用 GAS 汇编)混合在一起?

我知道如何将 Ada 与 C 链接,但如何与汇编链接?我知道 gcc 从 Ada 代码生成汇编代码,因此,我认为可以进行这种交叉链接。

How I can mix Ada code with assembly (assembled using GAS)?

I know how to link Ada with C, but how I can link with assembly? I know that gcc generates assembly code from Ada code, and because of this, I think is possible to do this cross-linking.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤寂小茶 2024-11-25 14:12:05

您可能会将程序集编译为 .o 目标文件,并将其作为参数提供给 Ada 编译器。

Presumably you would compile the assembly into a .o object file and give this as a parameter to your Ada compiler.

人疚 2024-11-25 14:12:05

我如何使用这两个代码?

如果您在 Intel x86 上使用 GNAT,则 内联汇编器 包括相关例子。

附录:-S 选项允许“检查生成的汇编代码”。这适用于 Ada、C、C++ 等。

how can I work with the two codes?

If you are using GNAT on Intel x86, the Inline Assembler includes related examples.

Addendum: The -S option allows one "to examine the generated assembly code." This applies to Ada, C, C++, etc.

月寒剑心 2024-11-25 14:12:05

如果您想使用 Ada 执行任何类型的混合语言编程,包括 Ada/Assember,您可能应该查看编译器的文档 接口编译指示,特别是其允许的调用约定。

例如,Gnat 提供了汇编器约定用于pragma import/export

通常,您必须将汇编器设计为充当子程序,该子程序使用与接口编译指示中使用的“约定”兼容的调用约定。

大多数编译器还通过 系统支持某种内联汇编.Machine_Code 包。这允许您将少量汇编语言与 Ada 混合在同一源文件中。

If you want to perform any kind of mixed-language programming with Ada, including Ada/Assember, you should probably look at your compiler's documentation on Interfacing pragmas, in particular its allowed calling conventions.

For example, Gnat provides an Assembler convention for pragma import/export.

Generally you will have to craft your assembler to act as a subprogram which uses a calling convention compatible with the "convention" used in your interfacing pragma.

Most compilers also support some kind of inline assembly, via the System.Machine_Code package. This allows you to mix small amounts of assembly language right in the same source files with your Ada.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文