C 内联汇编无序?

C Inline Assembly Unordered?

在 C 中我有:

__asm__ (   
            "mov    [=10=]x2,%rax;"
            "mov    [=10=]x6000dd,%rdi;"
            "mov    [=10=]x0,%rsi;"
            "syscall;"
        );

但是当我在汇编文件中编译它时,我看到:

# 12 "mine.cxx" 1
mov    [=11=]x2,%rax;mov    [=11=]x6000dd,%rdi;mov    [=11=]x0,%rsi;syscall;

为什么他们像这样排在第一行 如何区分?

您应该将 \n 添加到单独的行中。

__asm__ (   
            "mov    [=10=]x2,%rax;\n"
            "mov    [=10=]x6000dd,%rdi;\n"
            "mov    [=10=]x0,%rsi;\n"
            "syscall;\n"
        );

添加 \n 会对您有所帮助。

__asm__ (   
            "mov    [=10=]x2,%rax;\n"
            "mov    [=10=]x6000dd,%rdi;\n"
            "mov    [=10=]x0,%rsi;\n"
            "syscall;\n"
        );