the reference is from https://gcc.gnu.org/onlinedocs/gcc.pdf (5.0.0 pre-release), section 6.43 (How to Use Inline Assembly Language in C Code) and http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html syntax of basic asm statement: asm [ volatile ] ( Assembler Instructions ) syntax of extended asm statement asm [volatile] ( Assembler Template : Output Operands [ : Input Operands [ : Clobbers ] ]) Alanpsc, thanks you!