为什么< ,(和[asm中使用的符号

时间:2012-08-16 06:46:02

标签: assembly

有人可以解释一下使用%<在asm中意思是 我想要了解的指令是“%(%<%[%| sync \ n”

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

由于

1 个答案:

答案 0 :(得分:0)

"%(%<%[%|sync\n"不是任何语言的有效指令。但是,如果这是一个真实问题的乱码版本,那么我们来谈谈%[ ......

GNU-style extended inline assembly中使用语法%[foo]来引用“命名操作数”。例如:

#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的各种处理器指令,您可以在MIPS,PowerPC或您正在编程的任何处理器的任何参考手册中查找sync