I really don't know the imagecraft compiler, but I wonder if the semicolon ";" is necessary for the asm directive.
Basically in a C file, outside of a function, a single semicolon is an empty declaration, and already an extension to the ANSI standard, as far as I remember.
So I wonder if you get the same message for a single semicolon and if the compiler accepts the asm directive without with the ; afterwards.
BTW: But could also be kef's explanation, as mentioned, I did not use Imagecraft in the past.
Daniel