Syntax

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"