# برنامه نویسی سطح پایین > برنامه نویسی اسمبلی خانواده x86 >  اطلاعاتی در مورد زبان اسمبلی

## REZA-007

دوستان عزیز یه سوال داشتم اما چون نمیدونستم کجا مطرح کنم با عرض پوزش از تمامی سروران خودم اینجا مطرح کردم که امیدوارم قبل از اینکه حذف بشه جواب بدید.
دوستان گرامی من میخوام بدونم کاربرد زبان اسمبلی چیه و در نهایت اگر فردی کاملاً به این زبان مسلط بشه چیکار میتونه با این زبان انجام بده در حالی که بنظر میاد با وجود زبانهای سطح بالا زبان اسمبلی زیاد نباید کاربرد داشته باشه .
دوستان گرامی که زحمت نوشتن پاسخ را میکشند لطفاً کامل توضیح بدند.
با تشکر

----------


## tdkhakpur

> من میخوام بدونم کاربرد زبان اسمبلی چیه و در نهایت اگر فردی کاملاً به این زبان مسلط بشه چیکار میتونه با این زبان انجام بده در حالی که بنظر میاد با وجود زبانهای سطح بالا زبان اسمبلی زیاد نباید کاربرد داشته باشه .


اول اینکه اگر فردی مسلط به این زبان باشه راحتتر میتونه با پروسوسرهای مختلف ارتباط برقرار کنه یعنی راحت میتونه رابط کاربری مخصوص بنویسه. 
همانطور که استحضار دارید وقتی شما داخل برنامه از cpu برای انجام عملیات استفاده میکنید در اصل از رابط اماده مانند وقفه ها استفاده میکنید که اساسا از طریق اسمبلی کد میشه و شما برای اینکه تا این حد به سخت افزار نزدیک بشید می بایست اسمبلی رو یاد بگیرید البته این تنها را توجیه برای یادگیری نیست بسیاری از کار ها هست که نمیشه با زبانهای سطح بالا این کار رو انجام داد البته زبانهای تقریبا سطح پایینی مانند سی و یا تا حدودی پاسکال امکان این رو دارند که شما رو به سخت افزار نزدیک کنند ولی بدلیل اینکه شما مستقیما نمیتوانید فضای حافظه و پشته را کنترل و یا دستکاری کنید رو ندارند و برای اینگونه کارها باید مشخصات کار اینگونه کامپایلر را هم یاد بگیرید.
ولی در مورد اینکه چه کاربردی دارند اینطور میشه بیان کرد که اسمبلی نزدیکترین راه برای کمنترل دقیق سخت افزار هست مثل این میمونه که شما با یک ذره بین به یک شی نگاه کنید و یا با یک میکروسکوپ به اون شی رو مورد بررسی قرار بدید البته بیشتر کاربرد صنعتی درش اعمال میشه و کارهای صنعتی که مستقیما با سخت افزار مربوط به اون زبان خاص که در نهایت با کدهای اسمبلی کنترل میشه رو میتونید کنترل کنید. در صورتی که اگر با زبان سی این کار رو انجام بدید ممکن هست تاخیر نانو ثانیه ای کدها موجب سوختن و از بین رفتن موتور و دینام های با قیمت بالا بشه.
و سایر موارد دیگه...

----------


## vcldeveloper

> در حالی که بنظر میاد با وجود زبانهای سطح بالا زبان اسمبلی زیاد نباید کاربرد داشته باشه .


اون کسی که کامپایلر اون زبان های سطح بالا رو می نویسه، میخواد کد زبان سطح بالا رو به چی ترجمه کنه؟

اسمبلی همون زبان ماشین هست، یعنی هر دستور اون معادل یک دستور زبان ماشین مربوطه میشه. ماشین های با معماری های مختلف، زبان های مختلفی دارند، پس یک کد اسمبلی که روی یک ماشین عمل میکنه، لزوما روی ماشین دیگه عمل نمیکنه. این یکی از دلایل اصلی پیدایش زبان های سطح بالا هست.

با این وجود، ماشین مربوطه فقط کد ماشین مربوط به خودش رو متوجه میشه، پس هر برنامه ایی که شما با هر زبانی بنویسید، باید نهایتا به این کد ماشین تبدیل بشه، تا ماشین بتونه اون رو اجراش کنه. پس بالاخره یک جا یکی باید کد شما را به زبان ماشین مربوطه ترجمه کنه.

حالا از اسمبلی کجا بیشتر استفاده میشه؟
1- نوشتن بخش هایی از سیستم عامل.
2- تولید کد توسط کامپایلر ها.
3- بهینه سازی بخش هایی از یک نرم افزار سطح بالا.

----------


## REZA-007

> اون کسی که کامپایلر اون زبان های سطح بالا رو می نویسه، میخواد کد زبان سطح بالا رو به چی ترجمه کنه؟
> 
> اسمبلی همون زبان ماشین هست، یعنی هر دستور اون معادل یک دستور زبان ماشین مربوطه میشه. ماشین های با معماری های مختلف، زبان های مختلفی دارند، پس یک کد اسمبلی که روی یک ماشین عمل میکنه، لزوما روی ماشین دیگه عمل نمیکنه. این یکی از دلایل اصلی پیدایش زبان های سطح بالا هست.
> 
> با این وجود، ماشین مربوطه فقط کد ماشین مربوط به خودش رو متوجه میشه، پس هر برنامه ایی که شما با هر زبانی بنویسید، باید نهایتا به این کد ماشین تبدیل بشه، تا ماشین بتونه اون رو اجراش کنه. پس بالاخره یک جا یکی باید کد شما را به زبان ماشین مربوطه ترجمه کنه.
> 
> حالا از اسمبلی کجا بیشتر استفاده میشه؟
> 1- نوشتن بخش هایی از سیستم عامل.
> 2- تولید کد توسط کامپایلر ها.
> 3- بهینه سازی بخش هایی از یک نرم افزار سطح بالا.


دوست گرامی من در جای خوندم که از زبان اسمبلی برای برنامه نویسی موشک ،حملات اینترنتی ، جنگ الکترونیک ، برنامه ریزی بعضی از رباتها ، برنامه نویسی برخی از دستگاههای اکترونیک ومواردی از این قبیل استفاده میشه . چون بنظر نمیادی در مواردی که شما اشاره کردید کاربرد زیادی داشته باشه . در ایران که کسی سیستم عامل نمینویسه .نرم افزارهای موجود همه تقریبا همگی خارجیه .

----------


## vcldeveloper

> دوست گرامی من در جای خوندم که از زبان اسمبلی برای برنامه نویسی موشک  ،حملات اینترنتی ، جنگ الکترونیک ، برنامه ریزی بعضی از رباتها ، برنامه  نویسی برخی از دستگاههای اکترونیک ومواردی از این قبیل استفاده میشه .


این چیزهایی که ذکر کردید رو میشه با C یا خیلی از زبان های دیگه به شکل بهتری نوشت. نیازی نیست که اینها لزوما با اسمبلی نوشته بشند.




> در ایران که کسی سیستم عامل نمینویسه


جدا؟!! سیستم عامل لزوما به معنی یک سیستم عامل همه منظوره مثل ویندوز یا لینوکس نیست. شما برای کار با یک دستگاه خاص هم ممکنه سیستم عاملی بنویسید که رابط بین اون دستگاه با کاربر یا سایر دستگاه ها باشه. مثلا روترهایی که در شبکه های کامپیوتری یا حتی در مودم های ADSL استفاده میشند، برای خودشان سیستم عامل دارند.

----------


## vcldeveloper

> اين حرف براي هر برنامه اي صدق نمي كنه مثلا براي ويروس stuxnet كه ميشه  گفت يك سري كار هاي پيچيده انجام ميده و هدف سياسي،نظامي پشتش بود كاملا با  اسمبلي نوشته شده، چرا ؟ سرچ كنيد مي فهميد


در بسیاری از مواقع، کدی که یک کامپایلر درست و حسابی تولید میکنه، از کد اسمبلی که شما به صورت دستی می نویسید، Optimized تر هست. از اسمبلی در همچین اموری در سه حوزه عمده استفاده میشه:
1- Optimize کردن بخشی از کد که به هر دلیلی شما تصور می کنید کد اسمبلی شما بهینه تر از کدی هست که کامپایلر ممکنه به طور عادی تولید کنه.
2- ضرورت کنترل روی تک تک دستوراتی که پردازنده دریافت میکنه. این در حالت های خاصی نیاز میشه.
3- نوشتن برنامه برای یک پلت فرم سخت افزاری که کامپایلر زبان سطح میانی یا سطح بالای مناسبی برای آن موجود نیست.




> مثلا نمونه بالا كار با سخت افزار،نرم افزار،شبكه،باگ هاي سيستم زيمنس،و درايور نويسي و ... داشته  كه همه با هم در اسمبلي بوده


شما از کجا به اسمبلی رسیدید؟ کل چیزی که شما از اون ویروس دارید، Disassemble شده بخشی از باینری اون هست. اینکه چه ابزاری اون کدهای ماشین را تولید کرده (کامپایلر یک زبان سطح بالاتر، یا کدهای یک برنامه نویس که به طور دستی این کدها را وارد کرده) به طور عادی قابل تشخیص نیست، مگر اینکه کامپایلر مورد استفاده از خودش در کد  Signature خاصی بزاره (که بعضی از کامپایلرها این کار را می کنند).




> سايز برنامه چقدر شده؟ سرعت اجراش؟ مخفي كاريش براي اينكه تشخيص نده آنتي ويروس و ...


 :متفکر:  این چیزها ربط چندانی به زبان برنامه نویسی شما نداره. البته اگر بخواید از یکسری کتابخانه که در زبان های مختلف وجود دارند، استفاده کنید، طبیعی هست که حجم کد افزایش پیدا میکنه. در صورت استفاده از اسمبلی هم باید خودتان بسیاری از توابع و روتین های مورد نیازتان را بنویسید، که لزوما کد نوشته شده توسط شما کوتاه تر و سریع تر از کد استاندارد اون کتابخانه نیست. مواردی مثل سرعت اجرا و مخفی کاری و تشخیص ندادن آنتی ویروس و امثالهم هم ربطی به اسمبلی نداره. برنامه نویس باید خودش شناخت کافی از نقاط ضعف امنیتی پلت فرم ها، نرم افزارها، و سخت افزارهای مورد استفاده داشته باشه، تا بتونه از آنها برای مخفی کردن برنامه خودش استفاده کنه. زبان برنامه نویسی این وسط نقشی نداره.

----------


## 5040306172

دوستان شرمنده این سوالو میپرسم
استادما یه تحقیق داده.کاربرد زبان اسمبلی در ویندوز.ولی هرچی میگردم چیزی پیدانمیکنم.اگه میشه یه کم منو راهنمایی کنید.

----------


## typeman9

سلام 
کاربردهای  زبان  اسمبلی  را  در  سایت  اسمبلر  Fasm    می  توانید  پیدا  کنید 
ادرس  سایت اسمبلر  Fasm : 
https://flatassembler.net

----------


## typeman9

کاربرد  زبان  اسمبلی  در  ویندوز   منابع  فارسی  و  انگلیسی  مختلف  دارد ولی  کماکان  سایت  اسمبلر  Fasm    بهترین  مرجع  می  باشد : 

https://flatassembler.net

 البته  اسمبلر  masm32   هم  مرجع  خوب و  کاملی است  که  متاسفانه  ادرس  سایتش  یادم  نیست .

----------


## typeman9

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




اتفاقا  برخلاف  شما  زبان  اسمبلی  نقش  بزرگی  در  این  زمینه ها  داره  .  امروزه  اکثر  اسمبلرها  کتابخانه های  استاندارد  و  کامل  برای  برنامه  نویسی  حرفه ای دارند  . هم  برای  برنامه  نویسی  و  هم  مهندسی  معکوس   زبان  اسمبلی  بهتربن  گزینه  هست . 
استاد  گرامی .  لطفا  تا زمانیکه  با  زبان  اسمبلی  بطور  کامل  اشنا  نشده اید و  خودتان  یک  اسمبلر  حرفه  ای  طراحی  نکرده اید   در مورد  زبان  اسمبلی   یکطرفه  به  قاضی  نروید  و  چشم  بسته  غیب  نگویید . 
به سایت  اسمبلر  Fasm   مراجعه  کن  تا اسمبلی  رو  از  اول  یاد بگیری .  تحقیر  کردن  زبان  اسمبلی  مثل  تحقیر  کردن  خداست  چون  اسمبلی  خدای  زبانهای  برنامه  نویسی  است   .  شما  با  این  اظهاراتی  که  علیه  زبان  اسمبلی  نوشتید  فقط  بیسوادی  خودت  رو  با  صدای  بلند  جار  زدی .  واقعا  برایت  متاسفم .   برو  اسمبلی  رو  از  اول  یاد  بگیر  . 
ادرس  سایت  اسمبلر  Fasm :  

https://flatassembler.net 

تو  این  سایت  معنا  و  کاربرد  واقعی  زبان  اسمبلی  رو  میفهمی .  حالا حالاها  باید  شاگردی  کنی  جناب  استاد  !!!!

من  از  داخل  گوشی  پاسخ  شما  رو  دادم  لذا  حرفهای  من  با  حرفهای  شما  قاطی  شد .

----------


## typeman9

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






جناب vcldeveloper   :

سلام 

من در پاسخ به مطلب شما  لحن تندی داشتم  که بخاطر دفاع ناقص و عجیب شما از زبان اسمبلی بود .  شما می دانید که از قدیم گفته اند:  هر وقت خواستی چیزی را یا کسی را  بدنام و بی اعتبار کنی  به بدترین شکل از او  دفاع کن  . 
خب من مطلب شما را خواندم و دیدم شما کاربردهای زبان اسمبلی را به همان 3 مورد کذایی محدود کردید و عملا زبان اسمبلی را که قدرتمندترین زبان برنامه نویسی دنیاست از فرزندش زبان c   ضعیفتر  دانستی و عملا برای زبان اسمبلی نقطه ضعف تراشیدی که واقعا منو عصبانی کرد و من با لحن تندی با شما برخورد کردم که امیدوارم ناراحت نشوید . هرچند می دانم عصبانی می شوید ولی بهرحال بنده بابت لحن تند خودم عذرخواهی می کنم . بابت کلماتی هم که نوشتم عذرخواهی می کنم .  من اینقدر  شهامت دارم که اگر خطایی بکنم حتما از طرف مقابلم  عذرخواهی بکنم و اصلا از این بابت ناراحت نیستم . بنابراین بابت کلماتی که برعلیه شما در این تاپیک نوشتم رسما عذرخواهی می کنم اما شما نیز لطفا دید خودتان در مورد زبان اسمبلی را وسعت بدهید دوست عزیز و یکطرفه به قاضی نروید و با نوشتن عباراتی تحقیر امیز زبان اسمبلی را لگدمال نکنید . اسمبلی مظلوم ترین زبان برنامه نویسی دنیاست که متاسفانه هنوز که هنوزه هم در ایران و هم بسیاری از کشورهای جهان به این زبان برچسب و تهمت می زنند و عملا علیه این زبان نجیب و مظلوم  مقاله می نویسند و متاسفانه اساتید برنامه نویسی و مهندسان گرامی در جزوات اموزشی خود این زبان را تا جاییکه می توانند ناقص و معیوب و ضعیف  می شمارند .   خب طبیعی است که خون من بعنوان مدافع زبان اسمبلی که با توانایییهای فراوان این زبان اشناست و خودش هم با این زبان برنامه نوشته از خواندن این مطالب به جوش می اید و عصبانی می شوم . 
لطفا  سعی کنید زبان اسمبلی را ازطریق خود اسمبلی یاد بگیرید نه از زبانهای سطح بالا مثل دلفی یا ویژوال سی پلاس پلاس .   عملا اسمبلر درونی این زبانها بسیار محدود و گنگ و ناقص است و عملا شما هزار بار هم که این نوع اسمبلی را بخوانید نمی توانید کاربردهای اسمبلی را متوجه شوید . 

برای یادگیری زبان اسمبلی باید از خود زبان اسمبلی استفاده کرد که من پیشنهاد می کنم از اسمبلر  محبوب و قدرتمند  Fasm  که یک اسمبلر خودمیزبان و قدرتمند و خالص است  استفاده کنید . 

لطفا زبان اسمبلی را تحقیر نفرمایید و سعی کنید در مورد اسمبلی بیشتر و بیشتر تحقیق کنید .  با تشکر  .

----------


## typeman9

> دوستان عزیز یه سوال داشتم اما چون نمیدونستم کجا مطرح کنم با عرض پوزش از تمامی سروران خودم اینجا مطرح کردم که امیدوارم قبل از اینکه حذف بشه جواب بدید.
> دوستان گرامی من میخوام بدونم کاربرد زبان اسمبلی چیه و در نهایت اگر فردی کاملاً به این زبان مسلط بشه چیکار میتونه با این زبان انجام بده در حالی که بنظر میاد با وجود زبانهای سطح بالا زبان اسمبلی زیاد نباید کاربرد داشته باشه .
> دوستان گرامی که زحمت نوشتن پاسخ را میکشند لطفاً کامل توضیح بدند.
> با تشکر




سلام:

من بطور ناقص  توضیح می دهم خودت بقیه ی مطلب  رو  متوجه میشی: 

به سایت اسمبلر  Fasm    مراجعه کن اونجا کاربردهای متنوع زبان اسمبلی رو از نزدیک می بینی :

https://flatassembler.net

وارد سایت که شدی روی گزینه ی  زیر کلیک کن تا وارد انجمن کاربران زبان اسمبلی بشوی:

Message  Board

تو سایت فوق  ، بدون نیاز به عضویت میتونی لینکها را ببینی و فایلهای نرم افزاری و نیز فایلهای اموزشی  رو دانلود کنی .  به همین راحتی .

----------


## typeman9

> اون کسی که کامپایلر اون زبان های سطح بالا رو می نویسه، میخواد کد زبان سطح بالا رو به چی ترجمه کنه؟
> 
> اسمبلی همون زبان ماشین هست، یعنی هر دستور اون معادل یک دستور زبان ماشین مربوطه میشه. ماشین های با معماری های مختلف، زبان های مختلفی دارند، پس یک کد اسمبلی که روی یک ماشین عمل میکنه، لزوما روی ماشین دیگه عمل نمیکنه. این یکی از دلایل اصلی پیدایش زبان های سطح بالا هست.
> 
> با این وجود، ماشین مربوطه فقط کد ماشین مربوط به خودش رو متوجه میشه، پس هر برنامه ایی که شما با هر زبانی بنویسید، باید نهایتا به این کد ماشین تبدیل بشه، تا ماشین بتونه اون رو اجراش کنه. پس بالاخره یک جا یکی باید کد شما را به زبان ماشین مربوطه ترجمه کنه.
> 
> حالا از اسمبلی کجا بیشتر استفاده میشه؟
> 1- نوشتن بخش هایی از سیستم عامل.
> 2- تولید کد توسط کامپایلر ها.
> 3- بهینه سازی بخش هایی از یک نرم افزار سطح بالا.



سلام:
فقط همین  3 کاربرد را بلدی عزیزم ؟؟

واقعا که !!   بهتره یک سر به سایت اسمبلر قدرتمند Fasm  بزنی تا با  کاربردهای مختلف زبان اسمبلی اشنا شوی . افرین پسر خوب:

https://flatassembler.net

وارد سایت که شدی روی عبارت Message Board  کلبک کن تا وارد انجمن  برنامه نویسان زبان اسمبلی بشوی . انجا هزاران کاربرد برای زبان اسمبلی پیدا می کنی .  ضمنا  Fasm   با کمک ماکروهای قدرتمندش توانایی تولید برنامه برای انواع و اقسام معماریها را دارد و یک اسمبلر کاملا قابل حمله .  با وجود Fasm   ما هیچ نیازی به زبانهای سطح بالا نداریم . یادت باشه : (( علم ناقص نیاموختنش بهتر است . )) .

----------


## typeman9

> این چیزهایی که ذکر کردید رو میشه با C یا خیلی از زبان های دیگه به شکل بهتری نوشت. نیازی نیست که اینها لزوما با اسمبلی نوشته بشند.
> 
> جدا؟!! سیستم عامل لزوما به معنی یک سیستم عامل همه منظوره مثل ویندوز یا لینوکس نیست. شما برای کار با یک دستگاه خاص هم ممکنه سیستم عاملی بنویسید که رابط بین اون دستگاه با کاربر یا سایر دستگاه ها باشه. مثلا روترهایی که در شبکه های کامپیوتری یا حتی در مودم های ADSL استفاده میشند، برای خودشان سیستم عامل دارند.





سلام:
دوست عزیز توی جنگ الکترونیک زبان اسمبلی از همه ی زبانها بهتره همچنین توی برنامه نویسی موشک و ادوات نظامی . یک سوال از شما دارم ایا شما نظامی هستید که اینقدر با اعتماد بنفس در این مورد نظر می دهید ؟؟؟ توی بسیاری از سیستمهای نظامی هنوز از سیستم عاملهای قدیمی و زبانهای قدیمی بخصوص اسمبلی استفاده میشه . 
سیستم عاملهایی که کاملا با زبان اسمبلی نوشته شده اند عبارتند از :
Dexos,  Kolibrios  هردو گرافیکی هستند و روی رایانه ی شخصی براحتی نصب می شوند . با اسمبلی می توان همه نوع سیستم  عاملی را نوشت و هیج محدودیتی ندارد و هیچ نیازی به زبانهای سطح بالا نداریم . 
برای برنامه نویسی رباتها  و دستگاههای الکترونیکی  توکار  هیچ زبانی  بخوبی اسمبلی نیست .  عملا  زبان C  فقط یک برند تجاریست . این زبان عملا منسوخ شده چون اسمبلر قدرتمند و قابل حمل و شیئ گرا و همه منظوره ی Fasm  در اینده جای این زبان و نیز زبان ++C   را خواهد گرفت . اگر هم جای انها را نگیرد به موازات این دو زبان قدرتمندانه  پیشروی می کند و رقیب سرسختی برای این دو زبان خواهد بود . 
https://flatassembler.net

زبان C  هیچ مزیتی نسبت به زبان اسمبلی ندارد . همین ادرس بالا همه چیز را ثابت می کند .

----------


## typeman9

> اول اینکه اگر فردی مسلط به این زبان باشه راحتتر میتونه با پروسوسرهای مختلف ارتباط برقرار کنه یعنی راحت میتونه رابط کاربری مخصوص بنویسه. 
> همانطور که استحضار دارید وقتی شما داخل برنامه از cpu برای انجام عملیات استفاده میکنید در اصل از رابط اماده مانند وقفه ها استفاده میکنید که اساسا از طریق اسمبلی کد میشه و شما برای اینکه تا این حد به سخت افزار نزدیک بشید می بایست اسمبلی رو یاد بگیرید البته این تنها را توجیه برای یادگیری نیست بسیاری از کار ها هست که نمیشه با زبانهای سطح بالا این کار رو انجام داد البته زبانهای تقریبا سطح پایینی مانند سی و یا تا حدودی پاسکال امکان این رو دارند که شما رو به سخت افزار نزدیک کنند ولی بدلیل اینکه شما مستقیما نمیتوانید فضای حافظه و پشته را کنترل و یا دستکاری کنید رو ندارند و برای اینگونه کارها باید مشخصات کار اینگونه کامپایلر را هم یاد بگیرید.
> ولی در مورد اینکه چه کاربردی دارند اینطور میشه بیان کرد که اسمبلی نزدیکترین راه برای کمنترل دقیق سخت افزار هست مثل این میمونه که شما با یک ذره بین به یک شی نگاه کنید و یا با یک میکروسکوپ به اون شی رو مورد بررسی قرار بدید البته بیشتر کاربرد صنعتی درش اعمال میشه و کارهای صنعتی که مستقیما با سخت افزار مربوط به اون زبان خاص که در نهایت با کدهای اسمبلی کنترل میشه رو میتونید کنترل کنید. در صورتی که اگر با زبان سی این کار رو انجام بدید ممکن هست تاخیر نانو ثانیه ای کدها موجب سوختن و از بین رفتن موتور و دینام های با قیمت بالا بشه.
> و سایر موارد دیگه...



سلام
موافقم . کاملا  درسته . اسمبلی واقعا  بی همتاست .

----------

