Excessively using macros in assembler, just as in any language, amounts to writing a translator (code generator); problem, then, is that the language being translated from is usually crap, and the language being used to write the translator (the macro language) is also usually rather limited.