当我编译以下示例代码(这些本质上是没有实际用途的垃圾汇编语句)时,我收到以下错误;
def-asm-pop.c:13:3:错误:数字常量之前的预期字符串文字
第 13 行是未注释的“ASM”行;
#define iMOV "mov %eax,%ebx\n\t"
#define iNOP "nop\n\t"
#define iASM __asm__(iMOV iNOP)
#define MOV 0xB8
#define NOP 0x90
#define ASM __asm__(MOV NOP)
int main() {
//iASM; /* This one works when uncommented */
ASM; /* The one causes the error when uncommented */
return 0;
}
我的Hello World风格的内联汇编尝试中可能存在错误,但这是我要克服的另一个垫脚石。在这个时间点,我似乎无法定义操作码列表,然后定义由它们构建的汇编语句列表,就像我可以通过定义文本命令一样。我怎样才能ASM
像iASM
声明一样工作?