در بسیاری از مواقع، کدی که یک کامپایلر درست و حسابی تولید میکنه، از کد اسمبلی که شما به صورت دستی می نویسید، Optimized تر هست. از اسمبلی در همچین اموری در سه حوزه عمده استفاده میشه:
1- Optimize کردن بخشی از کد که به هر دلیلی شما تصور می کنید کد اسمبلی شما بهینه تر از کدی هست که کامپایلر ممکنه به طور عادی تولید کنه.
2- ضرورت کنترل روی تک تک دستوراتی که پردازنده دریافت میکنه. این در حالت های خاصی نیاز میشه.
3- نوشتن برنامه برای یک پلت فرم سخت افزاری که کامپایلر زبان سطح میانی یا سطح بالای مناسبی برای آن موجود نیست.
ببخشید استاد شما از کجا می دونید که اسمبلی فقط همین 3 کاربرد رو داره ؟؟؟ ضمنا کی گفته کامپایلر زبانهای سطح بالا کد بهینه تری نسبت به کد زبان اسمبلی تولید میکنه ؟؟؟؟!!!!!!!
استاد درس اسمبلی تو دانشگاه شما کی بوده خیلی دلم میخواد با استاد شما که این حرفهای عجیب و غریب رو به شما یاد داده مناظره کنم .
شما از کجا به اسمبلی رسیدید؟ کل چیزی که شما از اون ویروس دارید، Disassemble شده بخشی از باینری اون هست. اینکه چه ابزاری اون کدهای ماشین را تولید کرده (کامپایلر یک زبان سطح بالاتر، یا کدهای یک برنامه نویس که به طور دستی این کدها را وارد کرده) به طور عادی قابل تشخیص نیست، مگر اینکه کامپایلر مورد استفاده از خودش در کد Signature خاصی بزاره (که بعضی از کامپایلرها این کار را می کنند).
جنابعالی خودت از کجا اسمبلی رو یادگرفتی که اینقدر این زبان رو تحقیر می کنی ؟؟؟؟؟
کی گفته دیس اسمبلی قابل فهم نیست ؟؟؟؟!!!!
هیچ دلیل علمی برای دشمنی شما با زبان اسمبلی تو صحبتهای شما نیست . همشون تصورات ذهنی شماست و مبنای علمی نداره ِ
این چیزها ربط چندانی به زبان برنامه نویسی شما نداره. البته اگر بخواید از یکسری کتابخانه که در زبان های مختلف وجود دارند، استفاده کنید، طبیعی هست که حجم کد افزایش پیدا میکنه. در صورت استفاده از اسمبلی هم باید خودتان بسیاری از توابع و روتین های مورد نیازتان را بنویسید، که لزوما کد نوشته شده توسط شما کوتاه تر و سریع تر از کد استاندارد اون کتابخانه نیست. مواردی مثل سرعت اجرا و مخفی کاری و تشخیص ندادن آنتی ویروس و امثالهم هم ربطی به اسمبلی نداره. برنامه نویس باید خودش شناخت کافی از نقاط ضعف امنیتی پلت فرم ها، نرم افزارها، و سخت افزارهای مورد استفاده داشته باشه، تا بتونه از آنها برای مخفی کردن برنامه خودش استفاده کنه. زبان برنامه نویسی این وسط نقشی نداره.