理解汇编指令

Understanding assembler instruction

我在

上查看以下答案

LPC1768 / ARM Cortex-M3 microsecond delay

#define CAL_FACTOR ( 100 )

void delay (uint32_t interval)
{
  uint32_t iterations = interval / CAL_FACTOR;

  for(int i=0; i<iterations; ++i)
  {
    __asm__ volatile // gcc-ish syntax, don't know what compiler is used
    (
      "nop\n\t"
      "nop\n\t"
      :::
    );
  }
}

nop 后 \n\t 是什么?我查看了 GCC 汇编程序指南,但找不到答案。

如果您编写

,程序集块似乎以纯文本形式读取,指令以换行符分隔
"nop\n\tnop\n\t" 

应该也可以。

我在 http://asm.sourceforge.net/articles/rmiyagi-inline-asm.txt

'\n\t' 在除最后一行之外的每一行的末尾,以及 每行都用引号引起来。这是因为 gcc 发送 每个作为字符串的指令。 newline/tab组合 是必需的,以便根据正确的方式将线路馈送到 格式(回想一下,汇编程序中的每一行都缩进一个制表符 stop,一般为8个字符)。