I nline assembly statements can appear anywhere a C statement can appear (an __asm statement must be inside a C function). Inline assembly statements take one of two forms, which have various configurations. Using the first form, you can put multiple __asm statements on one line and delimit comments like regular C or C++ comments. Using the second form, you can contain one to several assembly instructions within the __asm block, but only one assembly instruction per line is possible. Also, the semicolon starts an assembly comment.
"__asm" <Assembly Instruction> ";" ["/*" Comment "*/"]
"__asm" <Assembly Instruction> ";" ["//" Comment]
or
"__asm" "{"
{ <Assembly Instruction> [";" Comment] "\n" }
"}"
or
"__asm" " (" <Assembly Instruction> [";" Comment] ")" ";"
or
"__asm" [" (" ] <string Assembly instruction > [")"] [";"]
with <string Assembly instruction >
= <Assembly Instruction> [";" <Assembly instruction>]
or
"#asm"
<Assembly Instruction> [";" Comment] "\n"
"#endasm"