C ++宏程序集错误

时间:2013-11-23 16:21:01

标签: c++ assembly macros x86 inline-assembly

我正在尝试为__declspec(naked)函数创建一个宏,但我不断收到以下错误:

'sub' identifier is reserved word
'mov' identifier is reserved word
inline assembler syntax error in 'first operand'; found'register'

这是我的宏:

#define NAKED_START __asm{push ebp\
                      mov ebp, esp\
                      sub esp, __LOCAL_SIZE\
                     }

我真的必须使用它:

#define NAKED_START __asm{push ebp}\
                    __asm{mov ebp, esp}\
                    __asm{sub esp, __LOCAL_SIZE}

1 个答案:

答案 0 :(得分:1)

尝试摆脱大括号并在每条指令前加__asm。这样编译器就可以知道每条指令的开始位置。