-2

有人可以解释一下 asm 中使用 %< 的含义吗?我试图理解的指令是“%(%<%[%|sync\n”

我知道 ( 用于引用内存位置。但无法理解 < 和 [ 符号的用法。

谢谢

4

1 回答 1

0

"%(%<%[%|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 或您正在编程的任何处理器的参考手册中查找。

于 2012-10-05T22:26:08.150 回答