On Thu, Sep 24, 2015 at 9:45 PM, Chuck Guzis <ccl...@sydex.com> wrote: > I'll bet you could do it with some macros in an ordinary x86 assembler. > It's not as if you're dealing with a large instruction set or a blizzard of > addressing modes.
Yes, though the syntax for the addressing modes would have to be non-standard, unless the macro assembler had really good string mangling capabilities for macro arguments. Same general problem as trying to define macros to assemble for the 6502, which has addressing modes like "(FOO)", "(FOO,X)" and "(FOO),Y", where the parenthesis, comma, and "X" or "Y" are all part of the addressing mode designation. A typical macro assembler will force the "Y" in the third example to be a separate macro argument, unless some form of argument quoting is used, and most assemblers will automatically evaluate the parenthesized expression and discard the parenthesis, again, unless some quoting is used. If I have to hack up an assembler, I'll add it to "Macroassembler AS", which I use for almost all of my hobby projects: http://john.ccac.rwth-aachen.de:8000/as/ One downside to using a modern assembler for my projects is that I use long symbol names, and my source code can't be assembled with most of the vintage resident assemblers, i.e., MACRO-80, due to a limit of six significant characters.