【发布时间】:2011-04-10 14:43:36
【问题描述】:
我用 C 编写了一个简单的汇编软件 (nasm) 和一个简单的应用程序。 我的 C 代码从汇编代码中调用了一个函数,但我不知道如何编译 C 代码而不收到来自“extern int Sum();”的“未定义引用”错误行。
C 代码:
#include <stdio.h>
extern int Sum();
main()
{
int a1, a2, x;
x = Sum(a1, a2);
printf("value of x is: %d\n", x);
}
汇编代码:
global _Sum
_Sum:
push ebp
mov ebp, esp
mov eax, [ebp+8]
mov ecx, [ebp+12]
add eax, ecx
pop ebp
ret
我将如何分别编译这两个文件,然后将它们链接到一个统一的文件中?
【问题讨论】:
-
我知道这个问题很老了:但是,对于来到这里的人来说——我在下面的回答中提供的代码链接和参考书是学习汇编的好资源。希望你得到有机会去看看!
标签: c assembly compilation nasm