به نام خدا
Spasm-Vs-Fasm
در پست قبلی ، یک متن را از وبلاگ فسمی به آدرس fasmy.blog.ir را به درون وبلاگ وحیدمی به آدرس vahidmy.blog.ir و البته وبلاگ اسپاسم ( spasm.blog.ir ) الصاق کردم و گفتم برای جلوگیری از تردید و دودلی در خودم و در مخاطبان ، قصد دارم که دیگه از اسمبلر RosAsm تبلیغ نکنم و منحصرا از اسمبلر Fasm و تحت عنوان کلی " زبان اسمبلی " تبلیغ نمایم .
اما حقیقت اینست که من یک آدم دمدمی مزاج و غیرقابل پیش بینی هستم و مرتبا تصمیمات ضد و نقیض می گیرم و مخاطب را کلافه و سردرگم می کنم .
این البته اصلا عمدی و از روی بدذاتی نیست بلکه خصلت و خصوصیت ذاتی ام هست .
من در تست نیمکره ی مغز که از طریق یکی از سایتهای معتبر از خودم گرفتم فهمیدم که هردو نیمکره ی مغزم همزمان فعال هستند و موجب ایجاد حالت ضد و نقیض می شوم .
این حالت را بیشتر در افرادی که دارای تیپ شخصیتی استراتژیست هستند می توان دید .
استراتژیست یعنی کسی که توانایی استفاده ی همزمان از هردو نیمکره ی مغز خود را دارد و می تواند احساسات را از منطق ، تفکیک نماید و بر هردو مسلط شود و از توانایی های هردو نیمکره ی مغز خود به خوبی استفاده می کند و یک راهبرد و راهکار اصلی و جهانی را اخذ می نماید .
قصد ندارم از خودم تعریف کنم و قصد خودتخریبی نیز ندارم ولی می خواهم بگویم که انسانهای دمدمی مزاج ، غیرقابل اعتماد و روانپریش و روان رنجور نیستند بلکه استراتژیست هستند و هردو نیمکره ی مغزشان همزمان فعال می شود و تصمیمات ناگهانی وضد و نقیض می گیرند .
بر همین اساس من مجددا تصمیم گرفتم که به تبلیغ از اسمبلر RosAsm ادامه دهم زیرا واقعا این اسمبلر را دوست دارم و نمی توانم از او دل بکنم و از طرفی دیگر ، Fasm را نیز دوست دارم و نمی توانم از مزایای فراوانش چشم پوشی کنم .
لذا تصمیم گرفتم هردو را با هم و همزمان تبلیغ کنم !!
البته این تصمیم ، ممکن است مجددا تغییر کند زیرا من دمدمی مزاج هستم !!!!
+
خب حالا یک مقایسه ی ساده و کوتاه بین این دو اسمبلر قدرتمند و رایگان و اوپن سورس و آزاد و خودکامپایل انجام می دهم و از پست بعدی ، مجددا کارم را در این وبلاگ ادامه می دهم :
فسم در مقابل اسپاسم
فسم یعنی فلت اسمبلر
اسپاسم یعنی سپیشیال اسمبلر
فلت یعنی ساده و یکپارچه
سپیشیال یعنی خاص و ویژه
من بجای اسامی انگلیسی ، سعی می کنم از تلفظهای فارسی استفاده نمایم .
فسم = Fasm
روسسم = RosAsm
Spasm = RosAsm
خب شروع مقایسه بین فسم و روسسم :
1- هردو کاملا رایگان هستند
2- هردو توسط خودشان یعنی زبان اسمبلی ساخته شده و توسط خودشان نیز کامپایل می شوند و به زبانهای سطح بالا هیچ نیازی ندارند و خودکفا و مستقل هستند
3- هردو اوپن سورس و متن باز هستند
4- هردو جزو نرم افزارهای آزاد محسوب می شوند
5- هردو انعطاف پذیر هستند و می توانید سینتاکس و گرامرشان را تغییر دهید و آنها را بروز نمایید و قابلیتهای جدید را به هردو اضافه کنید . می توانید قابلیتهای یکی را به دیگری اضافه نمایید مثلا می توانید یک دیس اسمبلر یا دیباگر را به فسم اضافه کنید .
یا می توانید نسخه هایی از روسسم را برای لینوکس و داس و اندروید و مکینتاش بسازید .
6- هردو ، اسمبلی خالص استاندارد سطح پایین هستند و هرگز از گرامر زبانهای سطح بالا استفاده نمی کنند مگر در قالب ماکرو و به بنا به صلاحدید کاربر
7- هردو تنها با فشردن یک کلید ، سورس برنامه را به فایل اجرایی باینری تبدیل می کنند .
8- هردو بسیار سریع و چابک و قدرتمند هستند
9- در هردو می توان به روشهای مختلف ، برنامه نویسی کرد
10- هردو به شدت انعطاف پذیر و پویا هستند
11- هردو از انواع مدلهای برنامه نویسی پشتیبانی می کنند
12- هردو به شدت به زبان ماشین نزدیک هستند لذا بسیار سریع و قدرتمند می باشند
13- هردو ، همه منظوره هستند . البته فسم همه منظوره تر است !!!
تفاوتها :
1- روسسم فقط برای ویندوز ساخته شده و بجز ویندوز و اینتل ، روی سایر پلتفرمها و حوزه ها نسخه ندارد و نمی تواند نرم افزار تولید کند
2- روسسم ، فقط از مدل 32 بیتی استفاده می کند و لذا قادر به تولید سیستم عامل و برنامه های 16 و 64 بیتی نیست
3- روسسم فقط یک نوع فایل یعنی فایلهای pe را تولید می کند لذا به درد سایر سیستم عاملها و یا سایر فایلها نمی خورد مگر اینکه شخصی پیدا شود و این قابلیت را به روسسم اضافه کند
4- روسسم فقط روی ویندوز و اینتل تمرکز کرده و از سایر سیستم عاملها و پردازنده ها غافل شده است
5- روسسم در یک زمان واحد فقط یک برنامه را باز می کند و اگر برنامه دچار مشکل شود ، روسسم کرش کرده و خودش را خاموش می کند و زحمات برنامه نویس را هدر می دهد
6- سینتاکس روسسم ، گیج کننده و مبهم و غیراستاندارد است و با سایر کامپایلرهای زبان اسمبلی همخوانی و تناسب ندارد
7- نسخه های مختلف روسسم با یکدیگر همخوانی و سازگاری ندارند و همدیگه را نمی شناسند .
فسم :
1- دیس اسمبلر و ری اسمبلر ندارد لذا برای مهندسی معکوس کارایی ندارد مگر اینکه با یک ترفند و از طریق یک هگز ادیتور بتوانیم فسم را وادار کنیم که نرم افزار را کرک کند .
2- دیباگر و اشکالزدا ندارد
3- به کوچکی و بزرگی حروف دستورات ، حساس هست و این اصلا خوب نیست . هرچند که می توان این حالت را تغییر داد ولی باید از طراح این اسمبلر یعنی آقای توماس گریستار اجازه گرفت که گویا ایشان اجازه نمی دهد !!
4- ماکروهای فسم ، ساختاری بسیار گنگ و تو در تو و نامفهوم و پیچیده دارند و لذا فهمیدن و بکار بردن این ماکروها واقعا دشوار است
5- فسم ، در نسخه ی ویندوزی اش ، لینکر ندارد و باید لینکر را با دست نوشت و عملا زحمت بسیار زیادی بر دوش کاربر تحمیل می کند .
نتیجه :
سردرگمی من و شما در این میان .
بله تنها بحث دمدمی مزاجی در کار نیست . ایکاش فقط همین بود . مشکل از این است که هردو اسمبلر فسم و روسسم اصلا کامل نیستند و موجب شده اند که زبان اسمبلی بیش از پیش دست نیافتنی و دشوار شود و کاربرها زبان اسمبلی را رها کنند .
تنها راه حل اینست که از یک هگز ادیتور که دارای دیس اسمبلر و ری اسمبلر باشد استفاده کنیم که خب این نیز دشواریها و مشکلات فراوانی در پی دارد .
تصمیمگیری برای من خیلی سخت شده است زیرا من حقیقتا دوست دارم زبان برنامه نویسی اسمبلی را احیا نمایم اما در میانه ی راه به بن بست خورده ام و متوقف شده ام .
باید قدری بیشتر فکر کنم .
شاید هردو اسمبلر را با هم تبلیغ کنم و شاید هم تصمیم دیگری بگیرم ....
لطفا اجازه دهید قدری فکر کنم و یک تصمیم بجا و درست و منطقی اخذ کنم و یکبار برای همیشه ، خودم و شما را از این تردید و سرگردانی نجات دهم .
پس تا اطلاع ثانوی که معلوم نیست چقدر از نظر زمانی طول بکشد ، به فکر فرو می روم تا شاید یک راه حل اساسی و درست و منطقی و یک ایده ی مفید و کاربردی به ذهنم برسد و بعد این ایده و راه حل را آزمایش و بررسی کنم و اگر واقعا هیچ ایراد و اشکالی نداشت و مفید بود ، این ایده را در تمام وبلاگهایم مطرح می کنم .
بهر حال من بعنوان یک انسان دمدمی مزاج و استراتژیست ، فعلا کلافه و درمانده شده ام و باید بتوانم خودم را از این وضعیت جهنمی نجات دهم . پس لطفا قدری صبور باشید تا شاید بتوانم تفکر و تمرکز کنم و یک راه حل صحیح را عملی نمایم و نتیجه را به شما اعلام کنم . من به استراحت و تفکر و آرامش و تمرکز نیاز دارم . پس لطفا صبور باشید و عجله نکنید . متشکرم .
نتیجه و تصمیم نهایی و قطعی را بعدا به شما اعلام می کنم .
تا بعد ...