Although an __asm block can reference C data types and objects, it cannot define data objects with MASM directives or operators. Specifically, you cannot use the definition directives DB, DW, DD, DQ, DT, and DF, or the operators DUP or THIS. Nor are MASM structures and records available. The inline assembler doesn't accept the directives STRUC, RECORD, WIDTH, or MASK.