如何在汇编程序中使用C库?

时间:2011-09-28 21:25:19

标签: c linux assembly x86

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

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

3 个答案:

答案 0 :(得分:8)

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

  1. 编写一个调用感兴趣的C函数的C程序
  2. 编译它,然后查看程序集列表(gcc -S
  3. 这种方法可以通过从已知的工作开始进行实验。您可以更改C源并查看生成的代码如何更改,您可以从生成的代码开始并自行修改。

答案 1 :(得分:2)

  1. 在堆栈上推送参数
  2. 调用函数
  3. 清除堆栈
  4. 您问题中的链接显示了所有这些步骤。

答案 2 :(得分:2)

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