C++中调用汇编函数
- obj
- src
- asm
- asm_base.S
- cpp
- main_cpp.cpp
- inc
- asm.h
- asm
- makefile
- a.out
# src/asm/asm_base.S
.text
.globl asm_add
.globl asm_sub
asm_add:
push %ebp
mov %esp,%ebp
mov 0x8(%ebp),%edx
mov 0xc(%ebp),%eax
add %edx,%eax
pop %ebp
ret
asm_sub:
push %ebp
mov %esp,%ebp
mov 0x8(%ebp),%eax
sub 0xc(%ebp),%eax
pop %ebp
ret
// src/inc/asm.h
#ifndef __INC_ASM_H__
#define __INC_ASM_H__
#ifdef __cplusplus
extern "C" {
#endif
extern int asm_add(int a, int b);
extern int asm_sub(int a, int b);
#ifdef __cplusplus
}
#endif
#endif
// src/cpp/main_cpp.cpp
#include "asm.h"
#include "main_cpp.h"
int main_cpp(void){
int a = 10;
int b = 20;
int c = asm_add(a, b);
int d = asm_sub(a, b);
return 0;
}
// src/inc/main_cpp.h
#ifndef __MAIN_CPP_H__
#define __MAIN_CPP_H__
#ifdef __cplusplus
extern "C" {
#endif
int main_cpp(void);
#ifdef __cplusplus
}
#endif
#endif
版权声明:本文为canhelove原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。