有人可以解释一下 asm 中使用 %< 的含义吗?我试图理解的指令是“%(%<%[%|sync\n”
我知道 ( 用于引用内存位置。但无法理解 < 和 [ 符号的用法。
谢谢
有人可以解释一下 asm 中使用 %< 的含义吗?我试图理解的指令是“%(%<%[%|sync\n”
我知道 ( 用于引用内存位置。但无法理解 < 和 [ 符号的用法。
谢谢
"%(%<%[%|sync\n"
不是任何语言的有效指令。但是,如果这是一些真实问题的乱码版本,让我们谈谈%[
......
该语法%[foo]
在GNU 风格的扩展内联汇编中用于引用“命名操作数”。例如:
#include <stdio.h>
int main()
{
int cvar = 42;
asm("incl %[name]"
: [name] "=r" (cvar)
: "0" (cvar));
printf("cvar is %d\n", cvar); // prints "cvar is 43"
}
那条装配线完全等同于
asm("incl %0"
: "=r" (cvar)
: "0" (cvar));
asm
在块开始变得复杂的情况下,它更具可读性。
至于%<
、%(
和%|
,我不知道有任何汇编语言可以为它们赋予含义。至于名为 的各种处理器指令sync
,您可以sync
在任何 MIPS、PowerPC 或您正在编程的任何处理器的参考手册中查找。