x64下c+asm杂交
说起杂交跟32下面没有什么大的区别连个源文件说明问题:
c:
#include "stdio.h"
//申明函数
extern void asm_func(_int64 a,_int64 b)
//实现c的函数
void c_func()
{
printf("成功");
}
int _tmain(int argc, _TCHAR* argv[])
{
long long c1,c2;
printf("输入两个数字(空格隔开):");
scanf("%d %d",&c1,&c2);
asm_func(c1,c2);
return 0;
}
asm:
;;先定义一个宏
cm macro szText:req
local sText
.const
sText db szText,0
.code
exitm <offset sText>
endm
.data
strs db '您输入的数字是:%d\n',0
.code
;;申明函数
;c实现的函数
c_func proto
;c库函数
printf proto format:ptr BYTE ,va:VARARG
;asm实现的函数
asm_func proto va1:QWORD ,va2:QWORD
;;开始asm实现函数,注意要public申明
;;这里只是控制台输出一个字符串
asm_func proc v1:QWORD ,v2:QWORD
mov rax,v1
add rax,v2
mov rdx,rax
lea rcx,strs
call printf
call c_func
ret
asm_func endp
end
最好打包个工程文件看看 回复 Tesla.Angela 的帖子
这个全部的工程就这俩源文件,,确实没有什么多的东西
所以直接贴了
杂交这词有意思。 确实没有什么多的东西 学习一下如何杂交! 路過留下言~~‵ {:soso_e179:}
==============================
PS:擦,谁盗我的号了,这个回帖不是我本人 支持一下。。vs2013不给x64用__asm....... 这贴还不错 值得分享 代码很清晰很给力
页:
[1]