首页
社区
课程
招聘
[旧帖] [求助]vc 源代码中宏定义asm 0.00雪花
发表于: 2012-6-28 11:10 1369

[旧帖] [求助]vc 源代码中宏定义asm 0.00雪花

2012-6-28 11:10
1369
#define MAR_ASM _asm \
{\
   mov eax,eax\
   mov ebx,ebx\
}\

我的意图是,当我使用MAR_ASM的时候,就能有相应的asm代码.
可是我那样会报错误.

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 120
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是的,
我按照你的代码,定义了这个宏,没有任何错误

但是我在其他地方引用这个宏,编译器就会提示
error C2400: “第二操作数”中的内联汇编语法错误;找到“register”

我查了篇文章讲内联汇编的,或许可以解决这个问题

另外你宏定义写成一行, 也没错误的,别忘了c++语句末尾的 ; 号

中文
https://www.ibm.com/developerworks/mydeveloperworks/blogs/12bb75c9-dfec-42f5-8b55-b669cc56ad76/entry/a_guide_to_inline_assembly_for_c_and_c_1?lang=en

英文原文
http://www.ibm.com/developerworks/rational/library/inline-assembly-C-Cpp-guide/
2012-6-28 14:24
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
#define MAR_ASM __asm \
{\
   mov eax,eax\
   mov ebx,ebx\
}\

注意__asm,2个破折号看看
2012-6-30 00:53
0
雪    币: 724
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
宏MAR_ASM展开后是:
    _asm{  mov eax,eax  mov ebx,ebx}
所以不对
MAR_ASM可以定义为:
#define MAR_ASM \
  _asm mov eax,eax\
  _asm mov ebx,ebx
如果想简单,也可以定义一行:
#define MAR_ASM _asm mov eax,eax _asm mov ebx,ebx
2012-6-30 11:06
0
游客
登录 | 注册 方可回帖
返回
//