我需要在我的nasm程序中调用来自不同C库的一些函数。
库:
<sys/ptrace.h>
<sys/wait.h>
... 和ptrace,execl,wait等函数
答案 0 :(得分:0)
通常有两种方法可以使用汇编程序中的C /或任何其他HLL函数:
静态链接 - 如果您使用链接器,则可以将程序与所需的HLL生成的.obj或.lib文件以及
动态链接 - 您的程序在加载过程中链接到所需的函数,而不是编译。有两种可能的实现方式:
2.1。手动加载动态库并获取所需函数的地址。您必须使用OS提供的服务。例如在Linux中,这是sys_uselib(非常过时)或者自己加载库并解析ELF文件以获取函数地址;
2.2。构建包含要使用的库和函数列表的导入表。然后OS加载程序将自动提供占位符变量中函数的地址,您可以从中间接地调用它们。
所有这些方法都依赖于OS和汇编程序,因此我只能为汇编程序I use提供示例:
Import macros用于为Linux构建导入表的FreshLib。