inside 发表于 2010-11-27 23:56:00

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 发表于 2010-11-28 00:15:02

最好打包个工程文件看看

inside 发表于 2010-11-28 00:57:42

回复 Tesla.Angela 的帖子

这个全部的工程就这俩源文件,,确实没有什么多的东西

所以直接贴了

乔丹二世 发表于 2011-7-13 12:37:03

杂交这词有意思。

BillBeggar 发表于 2011-10-17 14:55:20

确实没有什么多的东西

testid 发表于 2011-12-14 22:00:24

学习一下如何杂交!

kk1025 发表于 2013-4-11 10:52:42

路過留下言~~‵

billypon 发表于 2013-8-20 13:00:54

{:soso_e179:}

==============================
PS:擦,谁盗我的号了,这个回帖不是我本人

boxjellyfish 发表于 2014-1-21 10:51:27

支持一下。。vs2013不给x64用__asm.......

wangmin1944 发表于 2014-1-23 11:02:52

ejer 发表于 2015-4-7 12:39:50

这贴还不错 值得分享

upring 发表于 2015-5-26 19:49:28

代码很清晰很给力
页: [1]
查看完整版本: x64下c+asm杂交