I have recently been learning to use vasm. For those that don't know, vasm is a cross-platform assembler for multiple types of processors such as the M68000.


I am using it to write some Amiga specific (A1200) code in assembler.

For about 15 minutes, I could not figure out why I couldn't assemble a simple program until I discovered it was the white space between operands.

For example, the following does not work:

moveq #0, D0

But this does work:

moveq #0,D0

I have a habit of putting spaces after commas when I code and vasm does not like that. I have searched online and cannot find a reference to that issue.

The following is how I assemble the program if it helps:

vasm -m68020 -kick1hunks -Fhunkexe -o test.exe main.asm

Any idea how to tell vasm to not be so picky?

2 Answers 2


Yes, you can use -phxass option (name of the old Amiga native assembler by Phx/Frank Wille who is also the author of the Motorola syntax module)

vasm -phxass -m68020 -kick1hunks -Fhunkexe -o test.exe main.asm

From the documentation:


PhxAss-compatibility mode. Only directives known to PhxAss are recognized. Enables the following features:

  • Enable escape codes handling in strings (see ‘-esc’).
  • Macro names are treated as case-insensitive.
  • Up to 35 macro arguments.
  • Allow blanks in operands
  • Defines the symbol PHXASS with value 2 (to differentiate from the real PhxAss with value 1).
  • When no output file name is given, construct it from the input name.
  • Directives unknown to PhxAss are no longer supported.

It comes with some other syntax changes (ex: blk.b is allowed too) but it's pretty similar to devpac syntax, only more comprehensive. I'm using it for one of my projects when I migrated from phxass assembler, and using devpac option for other sources where I used Barfly before and I want others to be able to still use Barfly on those sources.


Adding command line option -spaces will do the trick by allowing spaces within operands. This means of course that comments now must be separated by ; from any instruction or directrive. Unlike with -phxass (which includes -spaces), there are no other side effects.

The option is only available with Motorola syntax (vasmm68k_mot).

On a sidenote, it may be useful to drop that habit when doing assembler, as not many will be so kind to allow it.

  • 1
    yeah, comments using * now trigger an error since they're seen as a multiplication. May 20, 2020 at 20:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .