asm基础——asm函数和c++函数之间的相互调用
2016-02-02 20:02
549 查看
asm函数和c++函数之间可以相互调用,主要需要做以下的几个步骤:
1. 在c++中需要使用到extern “C",无论是c++调用其它语言的函数,还是被其它语言调用,对应的函数都需要使用这个链接指示。下面是具体的示例:
1. 在c++中需要使用到extern “C",无论是c++调用其它语言的函数,还是被其它语言调用,对应的函数都需要使用这个链接指示。下面是具体的示例:
#include <iostream> using std::cout; using std::endl; extern "C" { //使用ASM写的代码 void func(); //本地的C++代码 void printReg(int reg); } void printReg(int reg) { cout << "reg: " << reg << endl; }2. asm中需要声明调用类型(在.MODEL中),另外,也需要声明c++函数。下面是具体的例子:
.686p .MODEL flat, stdcall printReg PROTO C, regValue:DWORD .code func PROC C mov eax, 0FFh INVOKE printReg, eax ;调用C++函数 ret func ENDP END3. 测试代码:
int main() { //C++中调用ASM函数 func(); return 0; }4. 测试结果:
相关文章推荐
- sqlite3对数据库加密用c语言开源项目wxSQLite3实现
- 用C++ Builder实现一组数组的排序与插入操作
- C++引用计数(reference counting)技术简介(3)
- C++引用计数(reference counting)技术简介(3)
- 学习C++
- C/C++: Inline function, calloc vs malloc
- C/C++: Inline function, calloc vs malloc
- C/C++: Inline function, calloc vs malloc
- C/C++: Inline function, calloc vs malloc
- C/C++: Inline function, calloc vs malloc
- C/C++: Inline function, calloc vs malloc
- ||C||<基础>C语言基础知识框架结构//个人整理使用|仅供参考|
- 基础知识(十)C++常用函数.txt
- 逐梦C++之四:四种强制类型转换
- 第二次作业——C++学习
- 第二次作业——C++学习
- C语言堆栈入门——堆和栈的区别
- C++ struct 定义及初始化
- c++指针
- 函数库regexec匹配正则表达式