【发布时间】:2013-09-30 20:16:53
【问题描述】:
当我编译以下示例代码(这些本质上是没有实际用途的垃圾汇编语句)时,我收到以下错误;
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 语句一样工作?
【问题讨论】:
标签: c inline-assembly