【问题标题】:How do I use C libraries in assembler?如何在汇编程序中使用 C 库?
【发布时间】:2011-09-28 21:25:19
【问题描述】:

我想知道如何用汇编程序编写文本编辑器。但是现代操作系统需要 C 库,特别是对于它们的窗口系统。我找到了这个page,对我帮助很大。

但我想知道是否有我应该知道的细节。我知道足够的汇编程序来编写将使用 GTK+ 在 Linux 中使用 windows 的程序,但我希望能够理解我必须发送给函数以使其成为有效输入的内容,以便更容易使用所有 C 库。对于 C 和 x86 汇编器之间的接口,我知道可以从 this 页面中学到什么,除此之外几乎没有。

【问题讨论】:

  • 在汇编程序中使用操作系统的 gui 服务编写一个“现代”程序是完全可能的。这只是很多工作。您想使用汇编程序的任何原因?通常没有人再用这种方式编写完整的程序,除了循环的关键部分需要主要的手部优化或教育经验。
  • MarcB:我想用汇编程序编写它的原因是因为在我尝试过的语言中,我最喜欢 x86 汇编程序,而且很大程度上。而且我预计在不久的将来会使用汇编程序,而我项目的更好的部分目的是让我可以更轻松地编写汇编程序。

标签: c linux assembly x86


【解决方案1】:

学习如何从汇编程序调用 C 的最有启发性的方法之一是:

  1. 编写一个调用感兴趣的 C 函数的 C 程序
  2. 编译它,然后查看程序集列表 (gcc -S)

这种方法可以很容易地从已知可行的东西开始进行实验。可以更改C源代码,看看生成的代码是如何变化的,也可以从生成的代码入手,自己修改。

【讨论】:

    【解决方案2】:
    1. 入栈参数
    2. 调用函数
    3. 清空堆栈

    您问题中的链接显示了所有这些步骤。

    【讨论】:

      【解决方案3】:

      操作系统可能会定义调用标准(它必须定义调用系统调用的标准),在这种情况下,您只需找到文档所在的位置并仔细阅读即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-05
        • 2021-12-05
        • 2021-11-11
        • 2010-10-22
        • 2014-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多