On Thu, Sep 24, 2015 at 9:45 PM, Chuck Guzis <cclist at 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.