首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 汇编如何内嵌入c语言 [已结贴,结贴人:lk0328]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 14:50:38 楼主
    如题。我见过一个说如何使c程序的运行更高效的文章,有一条是程序里内嵌汇编,可是不知道怎么内嵌。而且内嵌进去如何编译,各位高手帮忙解释解释啊!
    10  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bysdy
    • 等级:
    发表于:2008-05-25 15:11:361楼 得分:2
    vc编译器下是:
    C/C++ code
    _asm{ //内容 }

    其他的没用过-_-
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bysdy
    • 等级:
    发表于:2008-05-25 15:17:342楼 得分:5
    举个例子,比如算1+2=3;
    C/C++ code
    #include <stdio.h> int main() { int *c; _asm{ mov eax,1 add eax,2 mov c,eax } printf("%d\n",c); return 0; }

    编译的话,如果是vc就和平常一样编译就行了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Demon__Hunter
    • 等级:
    发表于:2008-05-25 16:40:513楼 得分:3
    引用 2 楼 bysdy 的回复:
    举个例子,比如算1+2=3;

    C/C++ code
    #include <stdio.h>
    int main()
    {
        int *c;
     
      _asm{
            mov eax,1
            add eax,2
            mov c,eax
      }
      printf("%d\n",c);

      return 0;
    }


    编译的话,如果是vc就和平常一样编译就行了

    vc~~~~内联汇编
    gcc的好像是
    #include <stdio.h>
    int main()
    {
        int *c;
     
      asm(
    /*gcc的内联汇编不会写了*/
          );
      printf("%d\n",c);

      return 0;
    }

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 17:05:254楼 得分:0
    去看看LINUX内核代码,里面各种内联汇编都有,简单的也很多
    static __inline__ void atomic_add(int i,atomic_t *v)
    {
    __asm__ __volatile__(
    LOCK"add %1 %0"
    :"=m" (v->count)
    :"ir" (i),"m"(v->count));
    }
    一般分3部分,指令部,输出部,输入部,用:隔开
    这是在LINUX下用GCC编译,vc下的汇编指令稍稍不同
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 22:37:075楼 得分:0
    学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 22:51:566楼 得分:0
    使用_asm可以嵌入汇编代码!!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-25 23:33:247楼 得分:0
    _asm
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved