我编写了一个C代码来再现内存重新排序,如下所示:
asm volatile(
"xor %0, %0\n\t "
"movl $1, %1\n\t "
"movl %2, %0\n\t "
: "=b"(r1), "=m" (X)
: "m"(Y)
: "memory", "ebx");
我不太明白gcc为什么抱怨:
“错误:'asm'操作数具有不可能的约束”
但是,如果我从“ clobber”列表中删除了“ ebx”(仅保留“ memory”),它会起作用。 什么样的值应该放在清单清单中?