我从我的大学教授那里得到了这段代码,所以我相当肯定代码有效,但对我来说,输出总是 0。
我在 Windows 和虚拟 Ubuntu 机器上尝试过,但还是一样。
我正在使用 mingw 进行编译:
gcc test.c test.s
这是C代码:
#include <stdio.h>
int func(int a, int b);
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("%d\n", func(a, b));
return 0;
}
这是组装:
.intel_syntax noprefix
.text
.globl _func
_func:
enter 0,0
mov eax, edi
add eax, esi
leave
ret
对于输入 2 和 3,它应该输出 5,但它始终为 0。