اگه بخوایم از FASM استفاده کنیم Open Source هست. مثل NASM. اما به دلایلی بیش تر FASM رو قبول دارم. ضمنا نیاز به Linker جدا نداریم، خودش Link هم می کنه. برای Linux و Windows و ... هیچ مشکلی نداریم. هم IDE داره و هم برنامه ی Console که با ارسال پارامتر به برنامه ی Console اش می تونیم بگیم، کارامون رو بکنه. از این لحاظ مشکلی نیست.
اگه دیده باشید Pure Basic هم از FASM استفاده می کنه.
اگه بخوایم کد Assembly خالص بدیم به FASM فقط یه FASM.EXE کافیه، اما اگه بخوایم یه سری macro تعریف کنیم (این برامون بهتره تا تعریف زیربرنامه)، باید یه سری (حتی یک) فایل inc. هم داشته باشیم. این کار انعطاف پذیریش بیش تره به نظرم. اگه خواستیم یه تغییری در دستورات پایه ای مون بدیم، فقط کافیه macro ها رو فایل های inc ویرایش کنیم، نه کد Compiler رو!
ضمنا اگه پشیمون شدیم، macro ها رو می تونیم حذف کنیم و خودمون در مرحله ی قبل تر کد macro ها رو تولید کنیم که البته الکی خودمونو اذیت می کنیم.
استاندارد هم هست، چون کد Assembly نهایی در این کار هیچ فرقی با بدون macro اش نداره، چون macro ها برخلاف زیربرنامه ها فقط جایگزین خطوط برنامه می شن.