在支持GNU扩展的编译器中,不需要单独的emit
关键字,只需使用GNU C内联汇编:
asm(".byte 0x90"); // implicitly asm volatile
或者.long
发出一个32位常数。
GNU C inline asm未被解析为检测clobbers或任何东西,所以你可以只是asm("nop");
如果要使用修改寄存器的指令,通常需要使用GNU C Extended内联汇编(output / input / clobbers)告诉编译器。见https://stackoverflow.com/tags/inline-assembly/info。