CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

内嵌汇编问题

楼主primercpp(初学者)2006-03-11 11:07:39 在 C/C++ / C++ 语言 提问

请问在标准C++中怎样内嵌汇编代码,我在DEV   C++中试了几下都没法编译.  
  请说明用的是何种编译器,是否是标准的 问题点数:50、回复次数:21Top

1 楼alen_ghl(东方求*)回复于 2006-03-11 12:07:54 得分 4

__asm{  
   
  ……  
  }Top

2 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-11 12:27:41 得分 4

各个环境的   嵌入汇编   的方式可能有一点区别的   ~  
  一般是类似  
  asm   mov   ah,9  
   
  或者是  
   
  __asm   {}Top

3 楼mydo(侯佩|hopy|ks)回复于 2006-03-11 12:36:39 得分 4

__asm   {}  
   
  没发编译提示什么?Top

4 楼DiabloWalkOnTheEarth(我想到个绝妙的昵称,只是地方太小,写不下)回复于 2006-03-11 12:44:49 得分 5

gcc   是   AT&T   语法,   跟   Intel   的是不同地   .....Top

5 楼deutsch(人民)回复于 2006-03-11 13:04:40 得分 5

同意楼上的  
  在at&t中应该是  
  asm("movw   $9,%ax");Top

6 楼primercpp(初学者)回复于 2006-03-11 13:10:13 得分 0

如在DEV   C++中运行以下代码:  
  #include   <conio.h>  
  int   main(void)  
  {  
          __asm{  
                      mov   ax,1  
                      }  
   
              getch();  
              return   0;  
  }  
  出错:  
  cc1plus.exe   D:\Dev-Cpp\work\cc1plus.exe   unrecognized   command   line   option   "-fsave-memoized"    
    D:\Dev-Cpp\work\Makefile.win   [Build   Error]     [test.o]   Error   1    
  DEV   C++不是支持标准的吗,怎么没法编译?  
   
  Top

7 楼strangerryf(白痴与白痴讨论的结果一定是比白痴更为白痴的结论)回复于 2006-03-11 14:49:05 得分 10

ISO/IEC   9899:1999说  
   
  J.5.10   The   asm   keyword  
  1   The   asm   keyword   may   be   used   to   insert   assembly   language   directly   into   the   translator  
  output   (6.8).   The   most   common   implementation   is   via   a   statement   of   the   form:  
  asm   (   character-string-literal   );  
   
  STANDARD   ISO/IEC14882说:  
   
  7.4   The   asm   declaration   [dcl.asm]  
  1   An   asm   declaration   has   the   form  
  asm-definition:  
  asm   (   string-literal   )   ;  
  The   meaning   of   an   asm   declaration   is   implementation-defined.   [Note:   Typically   it   is   used   to   pass   information  
  through   the   implementation   to   an   assembler.   ]  
   
  asm   ("movb   $1,   %ax");   更多参见gcc   3.2.3(dev   c++好像是gcc   3.2的版本)说明文档:http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Extended-Asm.html#Extended%20Asm  
  再google以下“at&t   assembly”Top

8 楼strangerryf(白痴与白痴讨论的结果一定是比白痴更为白痴的结论)回复于 2006-03-11 14:57:16 得分 5

偶打错了-   -b  
  人民是对的:  
  mov   ax,1   ->   asm("movw   $1,   %ax");Top

9 楼Kenmark(fenix)回复于 2006-03-11 15:07:57 得分 3

AT&T的汇编语法和intel的不一样,要注意的东西Top

10 楼Kenmark(fenix)回复于 2006-03-11 15:08:32 得分 3

在VC++6下__asm{}十分通用Top

11 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2006-03-11 15:28:50 得分 0

学习  
  Top

12 楼primercpp(初学者)回复于 2006-03-11 16:11:04 得分 0

以AT&T语法来写,还是出现  
  cc1plus.exe   D:\Dev-Cpp\work\cc1plus.exe   unrecognized   command   line   option   "-fdollar-in-identifiers"    
   
  是不是哪些地方设置不对,请达人指点,不然立马将DEV   C++删除,用MS!Top

13 楼ugg(逸学堂(exuetang.net))回复于 2006-03-11 16:53:51 得分 3

lz看一下帮助。  
  错误提示,是无法识别表示符号  
  unrecognized   command   line   option  
   
  在VC中嵌入汇编  
  __asm  
  {  
  }  
   
  DEV   C++   中lz看看帮助吧Top

14 楼wjd7623054(千古风流)回复于 2006-03-11 17:31:17 得分 0

好像就是  
  asm  
  {  
   
  }  
  前边没有下华线的Top

15 楼sharkoasis(魔师庞斑)回复于 2006-03-11 18:09:25 得分 0

GCC应该用ATT的汇编语法,可以找ATT汇编的参考手册看看!Top

16 楼deutsch(人民)回复于 2006-03-11 18:42:08 得分 0

#include   <conio.h>  
   
  int   main()  
  {  
                      asm("movw   $1,%ax");  
                      getch();  
                      return   0;  
  }  
   
  gcc   test.c   -o   test  
  无问题通过。  
  gcc   3.4.2   (mingw-special)Top

17 楼primercpp(初学者)回复于 2006-03-11 20:25:28 得分 0

感谢各位!命令行下用GCC   可以,但在IDE中却不能.Top

18 楼blh(当你不割肉时,你的损失只是个数字,当你割肉时,你的损失就是你的肉)回复于 2006-03-11 20:51:30 得分 4

gcc   (Dev   c++)对c文件中的内嵌汇编使用AT&T汇编  
  而VC/BC/TC则使用Intel汇编Top

19 楼wshcdr(dd)回复于 2006-03-11 20:57:08 得分 0

gzTop

20 楼ruodeer(看我的个性签名都给我分)回复于 2006-03-12 20:39:54 得分 0

markTop

21 楼wcg_jishuo()回复于 2006-03-12 22:48:03 得分 0

gzTop

相关问题

  • DELPHI内嵌汇编
  • 内嵌的汇编错误
  • tc2.0如何内嵌汇编?
  • 内嵌汇编出错?
  • 如何在VC中内嵌汇编?
  • VC6中内嵌汇编的问题 __ASM{} ?
  • 内嵌汇编时编译报错
  • 关于内嵌汇编问题
  • 内嵌汇编会让VC当机
  • vc中内嵌汇编的问题

关键词

  • c++
  • 汇编
  • asm
  • at&t
  • 语法
  • gcc
  • intel
  • cpp
  • 内嵌
  • cc1plus

得分解答快速导航

  • 帖主:primercpp
  • alen_ghl
  • jixingzhong
  • mydo
  • DiabloWalkOnTheEarth
  • deutsch
  • strangerryf
  • strangerryf
  • Kenmark
  • Kenmark
  • ugg
  • blh

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo