Purtroppo gli assemblatori non sono tutti uguali. Per meglio dire, le parti di codice vero e proprio sono standard e trattate nello stesso modo da tutti gli assemblatori, ma in un sorgente asm ci sono altre parti, anch'esse importanti, come l'impostazione del "punto d'origine" che spiegava Raffox, la cui sintassi può cambiare da assemblatore ad assemblatore.
Ad esempio ho notato che la versione corrente del DASM non accetta più l'assegnazione * = qualcosa, ma pretende l'istruzione
ORG (esempi
ORG $801 o
ORG 2049). Ma c'è di più: se la direttiva è scritta nella prima colonna, vale a dire completamente allineata a sinistra nel testo, la parola ORG viene vista come una label e di conseguenza si verifica un errore di
codice mnemonico non riconosciuto ($801).
Non so se queste siano precise scelte progettuali o imperfezioni dovute alla recente completa riscrittura del DASM. Potresti provare qualche versione più vecchia o comunque diversa dell'assemblatore, come quella di iAN CooG (che trovi sul
suo sito), ma in ogni caso leggi bene il readme accluso per conoscere la sintassi dell'assembler che userai.