собственно код и его результаты во вложении вот что получается: ml.exe value.asm Assembling: value.asm @V_size = 8h value.asm(32) : error A2027: operand must be a memory expression @CatStr(1): Macro Called From @Value(2): Macro Called From value.asm(32): Main Line Code @V_ofs = 0h а нужно: @V_size = 8h @V_ofs = 4h
собственно решение, которое мне подсказали на masm32.com/forum Код (Text): ;=======[ STRUCTURE ]=============== Some\ STRUC Some_Data_0\ BYTE ? Some_Data_1\ BYTE ? Some_Data_2\ WORD ? Some_Method\ DWORD ? Some\ ENDS ;======[ MACRO ]==================== @Value MACRO name:req, expression:req .RADIX 10h %ECHO @CatStr (<name>,< = >,%expression,<h>) .RADIX 0Ah ENDM .386 .MODEL FLAT .code @Value @V_size,Size(Some) @Value @V_ofs,Some.Some_Method end