我不清楚clang使用的汇编程序。使用AFAIK原生的又名GNU汇编器和链接器(与gcc一起提供)。
clang -v main.c
clang version 3.4.2
Target: x86_64-unknown-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.5.3
Found ca
我正在编写一个程序,它将使用MASM调用一些C++函数。我在一个单独的文件中定义了两个整数之和并显示输出。
目前,我无法让“main.cpp”运行asmMain()来调用'main.cpp‘中的函数。
code.asm
; ---------------------------------------
promptFirst PROTO C
promptSecond PROTO C
printInt PROTO C
.586
.model flat, stdcall
.stack 4096
; --------------------------------------
我已经创建了共享库(将像插件一样使用)。有很多功能,比如
extern "C" long __attribute__ ((__cdecl__)) SumAgrs(long X, long Y, long Z, long *Out)
{
*Out = X + Y + Z;
return 0;
}
我想在C++(GCC,Linux)中调用这个库中的函数,而不是在编译时调用函数。当我使用内联汇编程序时,"push“指令破坏了局部变量,我不知道如何修复它。
typedef int (*FARPROC)();
void *dl_handle = dlopen(&