x86ASM

x64下c+asm杂交
  • 1楼 inside
  • 18335112010-11-27 23:56:00
说起杂交跟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

评分

倒序浏览 看全部 全部回复11
最好打包个工程文件看看
  • 3楼 inside
  • 2010-11-28 00:57:42
回复 Tesla.Angela 的帖子

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

所以直接贴了
杂交这词有意思。
确实没有什么多的东西
  • 6楼 testid
  • 2011-12-14 22:00:24
学习一下如何杂交!
  • 7楼 kk1025
  • 2013-4-11 10:52:42
路過留下言~~‵
{:soso_e179:}

==============================
PS:擦,谁盗我的号了,这个回帖不是我本人
支持一下。。vs2013不给x64用__asm.......
提示: 作者被禁止或删除 内容自动屏蔽
  • 11楼 ejer
  • 2015-4-7 12:39:50
这贴还不错 值得分享
  • 12楼 upring
  • 2015-5-26 19:49:28
代码很清晰很给力
回复 收藏 转播 分享 淘帖