我遇到了一个看起来像这样的代码:
asm volatile (
# [...]
"movl $1200, %%ecx;"
# [...]
);
我知道 movl $1200, %ecx
在 x86 中的作用。但我对为什么有两个百分号感到困惑。
最佳答案
GCC 内联汇编使用 %0、%1、%2 等来引用输入和输出操作数。这意味着您需要为实际寄存器使用两个 %%。
检查这个howto获取重要信息。
关于c - 双百分号 (%%) 在 gcc 内联汇编中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14745631/