理解汇编指令
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个字符)。
我在
上查看以下答案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个字符)。