vahidmy

وبلاگ شخصی وحید محمدی

vahidmy

وبلاگ شخصی وحید محمدی

وحیدمی

وبلاگ شخصی وحید محمدی . یک تایپیست که عاشق علم و تجربه است.


آدرس وبلاگ وحیدمی :

Home Page


https://vahidmy.blog.ir

+


Archive

آرشیو و بایگانی وبلاگ وحیدمی

https://vahidmy.blog.ir/archive

+


نقشه وبلاگ وحیدمی:

Sitemap

https://vahidmy.blog.ir/sitemap.xml

+

خوراکخوان وبلاگ وحیدمی

Feed

RSS

https://vahidmy.blog.ir/rss

+

آدرس مورد استفاده خزنده ها روباتها و موتورهای جستجوگر

Robot

https://vahidmy.blog.ir/robots.txt


+

مشخصات وبلاگ وحیدمی:


ساعات انتشار پست جدید وبلاگ :

بیست و چهار ساعته

وضعیت انتشار پست : نامنظم . در طول شبانه روز و در صورت صلاحدید ؛ پست جدید منتشر می کنم.


نام مدیر : وحید محمدی

گونه : وبلاگ شخصی با آدرس اختصاصی و محتوای عمومی

ژانر : تمام ژانرها

کاربرد : همه منظوره

هدف وبلاگ : به اشتراک گذاشتن دانش و تجربه با مردم و پرداخت زکات علم

مقصد مدیر وبلاگ : کسب رضای خداوند .

جنس وبلاگ : وبلاگ شخصی

تاریخ تاسیس : تیر 1398 خورشیدی



موضوعات وبلاگ : تمام علوم و فنون و مسائل مختلف در تمام زمینه


کپی برداری از مطالب وبلاگ وحیدمی به شرط لینک دادن به آدرس اصلی وبلاگ با دامنه vahidmy.blog.ir ، بلامانع و آزاد است . با خیال راحت ، کپی برداری نمایید . هیچگونه کپی رایت و انحصار برای وبلاگ وحیدمی ، وجود ندارد .

بروزرسانی:

وبلاگ وحیدمی منحصرا توسط سایت بلاگ دات آی آر به آدرس blog.ir میزبانی می شود . بنابراین بجز دامنه vahidmy.blog.ir سایر دامنه ها جعلی و فیک و خطرناک هستند .
برای مشاهده نکات جدید و ترفندهای امنیتی لطفا به آدرس زیر مراجعه فرمایید:

https://vahidmy.blog.ir/post/1



آدرس وبلاگهای تخصصی :

https://spasm.blog.ir

https://fasmy.blog.ir

https://binasm.blog.ir

طبقه بندی موضوعی
مطالب پربحث‌تر
  • ۰۱/۰۴/۱۱
    adc
نویسندگان
پیوندها

آشنایی با کامپایلرهای زبان اسمبلی بخش 1

سه شنبه, ۱ مرداد ۱۳۹۸، ۰۱:۱۰ ق.ظ







بنام خدا


آدرس جدید مطلب براساس شماره ترتیبی : 



https://vahidmy.blog.ir/post/23



آشنایی با کامپایلرهای زبان اسمبلی بخش 1 : 



خب بعد از یک وقفه ی طولانی ، قصد دارم طی چند پست  شما را  با تمامی کامپایلرهای زبان برنامه نویسی اسمبلی آشنا کنم . انشاءا....


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


ترتیب کامپایلرها  به ترتیب  تاریخ اختراع شان نیست و این بخاطر کمبود وقت است  .


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


عملا  انتخاب هر کامپایلر بصورت رندوم  (تصادفی)  انجام می شود .


برای شروع  اجازه دهید ابتدا از  masm  شروع کنم .



masm  (مَسم )  مخفف  مایکروسافت ماکرو اسمبلر 

Microsoft_Macro_Assembler



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


  پس لغت masm  الزاما   به معنای  مایکروسافت ماکرو اسمبلر  نیست !!! می تواند به معنای  مایکروسافت اسمبلر نیز باشد !




مایکروسافت ماکرو اسمبلر یا  مَسم  (masm) در دهه ی 80 میلادی (حدودا  سال  1981 میلادی )   توسط شرکت معروف مایکروسافت  و با استفاده از  زبان  برنامه نویسی  سی    (c)  اختراع شد و بصورت کدبسته فروخته می شد .


اطلاعات کامل و دقیق در مورد  masm   را می توانید از لینک زیر  پیدا کنید:


https://en.wikipedia.org/wiki/Microsoft_Macro_Assembler



مَسم (مایکروسافت اسمبلر)  در دو نسخه  تولید شده  است :


1- نسخه ی 16 بیتی و  32 بیتی  که بصورت  Masm32  از سایتی جداگانه  قابل دانلود است .


2- نسخه ی 64 بیتی که بخشی از بدنه ی  ویژوال استودیو می باشد .



نسخه ی 16 و  32 بیتی  مایکروسافت اسمبلر را می توانید از آدرس زیر  دانلود کنید . این نسخه  رایگان است اما  اوپن سورس و آزاد نیست (متاسفانه ) :



 http://www.masm32.com/download.htm



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


masm32  عملا   نسخه ای کاملا  مستقل می باشد و  هیچ ربطی به شرکت  مایکروسافت ندارد و بصورت یک پروژه ی جداگانه  عرضه می شود.


masm32   بصورت یک پکیج مستقل ،  از آدرس بالا  قابل دانلود است .


masm32  بعد از دانلود شدن باید روی ریشه ی درایو  C  یا  D  نصب شود . حتما باید روی ریشه ی درایو نصب شود .

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



مزایای   مایکروسافت ماکرو اسمبلر (masm)


1- معروفترین و متداولترین  کامپایلر زبان اسمبلی در دنیاست و در ایران نیز توسط مهندسین کامپیوتر و برنامه نویسان حرفه ای  بکار می رود . لذا منابع آموزشی و برنامه های بسیار زیادی دارد که باعث می شود شما  خیلی زود بر زبان اسمبلی تحت ویندوز ، مسلط شوید .


2- تقریبا در اکثر سایتها و  انجمنها  و  وبلاگهای ایرانی و خارجی  ، وقتیکه از زبان اسمبلی حرفی به میان می آید همه  همین  masm32  (مایکروسافت ماکرو اسمبلر)  را  به یکدیگر معرفی کرده و بکار می برند و با ان برنامه نوشته و روش برنامه نویسی با ان را به کاربران یاد می دهند .

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


3- گرامر (سینتاکس)   مایکروسافت ماکرو اسمبلر شباهت فراوانی به گرامر زبان   برنامه نویسی   سی   دارد .  البته صد درصد شبیه نیست زیرا هرچه باشد  اسمبلی است . ولی تا حدودی  کار کردن با آن برای برنامه نویسان زبان  C  آسان است ( بدلیل شباهت در سینتاکس)


بنابراین از این جهت نیز  این  اسمبلر  طرفداران فراوانی خصوصا در میان برنامه نویسان زبانهای   سی و سی پلاس پلاس دارد .


4- مایکروسافت ماکرو اسمبلر  ده ها   محیط جامع برنامه نویسی یعنی  IDE  دارد که کارکردن با ان را بسیار آسان و سریع   می کند .


5-  امکان برنامه نویسی شیئ گرا نیز در masm32  وجود دارد .  خصوصا اینکه برخی از IDE های این اسمبلر کاملا   ویژوال و شیئ گرا هستند . 


6- دارای دو نوع سینتاکس  اسمبلی می باشد : اسمبلی خالص استاندارد سطح پایین (شبیه به  دیس اسمبلی)   و   اسمبلی سطح بالا  شبیه به زبان  سی 


7-  برنامه نویسی در masm32  تقریبا آسان  و راحت است .   مراحل کامپایل و بیلد و ران  شبیه به مراحل مشابه در زبان  سی  می باشد .


8- کتابخانه ها  و مستندات برنامه نویسی بسیار زیادی برای  masm32 وجود دارد و حتی بسیاری از کتابخانه های زبانهای  سی و سی پلاس پلاس از اول تا آخر  برای  masm32 بازنویسی شده اند .

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


9-  masm32  همانطور که در بالا گفته شد در دو مدل  16 و  32 بیتی  برنامه تولید می کند .


10- تمامی توابع API ویندوز بعلاوه ی بسیاری از توابع  زبانهای سی و سی پلاس پلاس  برای  masm32  بازنویسی شده اند .  لذا  مایکروسافت ماکرو اسمبلر عملا  از امتیازات  این دو زبان قدرتمند  نیز برخوردار است و می توان با کمک ان نرم افزارهای بسیار قوی و بزرگ و کارامد و حرفه ای برای ویندوز تولید کرد .

(من اگر بجای برنامه نویسان این دو زبان بودم  حتما  از  masm32  نیز برای تولید نرم افزارهای بزرگ و قدرتمند و با کیفیت و کارآمد استفاده می کردم )    


11-  بخشهایی از سورس  ویندوز 2000  پروفشنال  بطور کامل با   masm32  و توسط شرکت مایکروسافت نوشته شده است . 


12-  مَسم  (masm32)   یک اسمبلر قدرتمند و پایدار و سختگیر می باشد . این اسمبلر همچون  سایر محصولات شرکت مایکروسافت  با بهترین کیفیت  ساخته شده و عملا یک نرم افزار بسیار مستحکم و قوی است .


من به  برنامه نویسان حرفه ای توصیه می کنم  که  یکبار هم که شده برای برنامه نویسی تحت ویندوز از  masm32  استفاده کنند .



معایب مایکروسافت ماکرو اسمبلر:


1- منحصرا  برای ویندوز ساخته شده و فقط روی ویندوز نصب می شود و قابل حمل نیست  یعنی به ویندوز شدیدا وابسته است . پس نمی توان از آن برای سایر سیستم عاملها استفاده کرد .


2- متاسفانه  برای ساخت سیستم عامل چندان  مناسب نیست . زیرا بین نسخه های 16 بیتی و 32 و 64 بیتی اش  هماهنگی وجود ندارد . فقط  بخشهای حساس ویندوز با  این اسمبلر ساخته شده اند .


3- فقط برای پردازنده ی اینتل ساخته شده و  مثلا برای  پردازنده ی Arm  هیچ نسخه ای ندارد .

4- قدری کند است زیرا با زبان  سی  ساخته شده و عملا این موضوع برای یک اسمبلر اصلا  وجهه ی خوبی ندارد .  اسمبلر باید بسیار سریع و چابک باشد .


5- بخش ابتدایی برنامه های  Masm32  پر از  رهنمودهای کامپایلر و  کتابخانه ها  و  پروتوتایپ است که واقعا  برای یک برنامه نویس مبتدی ،  خسته کننده و وقتگیر است .


6- هیچ پشتیبانی از این اسمبلر  صورت نمی گیرد  . مایکروسافت  بطور کامل انرا فراموش کرده و   توسعه ی  ان سالهاست که متوقف شده است .  می توان  این اسمبلر را جزو اسمبلرهای  نیمه زنده و درشرف انقراض  محسوب کرد .  هرچند هنوز هواداران بسیاری در دنیا و حتی ایران دارد .


درصورتی که  به این پست علاقه مند شده اید و دوست دارید با   masm32 برنامه نویسی کنید در بخش کامنتها  از من سوال کنید تا جواب بدهم .


مراحل نصب  masm32   را در بخش کامنتها  توضیح می دهم .


اگر  به برنامه نویسی با  اسمبلی علاقه دارید  سوالات خود را در در قالب کامنت  مطرح کنید  تا جواب دهم ..


 فعلا شب بخیر . 


+


بروزرسانی : 


به دلایل مختلف از  جمله کمبود وقت و عدم تمایل به بحث کردن با  مردم  ؛ ارسال نظر برروی وبلاگهای من  غیرفعال است . 


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


+


موضوعات وبلاگ وحیدمی :

من  در تمامی پستهای وبلاگ وحیدمی ، سعی می کنم لااقل یک اشاره ای به موضوعات این وبلاگ داشته باشم . به همین دلیل برای تمامی پستهای این وبلاگ ،  تمام جعبه های موضوعات  وبلاگ  شامل  Idea ،  Assembly  ،  vahidmy  ، Music  ، Binary ، OS ، Weblog ، IT   ؛  را تیک می زنم که البته در دنیای وبلاگنویسی،  این رفتار ؛   کاری مضحک  و بی معنا و غیرحرفه ای محسوب می شود  ولی من به این قواعد و استانداردهای وبلاگنویسی اهمیت نمی دهم و دوست دارم هرطور که دلم می خواهد وبلاگنویسی نمایم و آزاد باشم . لذا  همینقدر که یک اشاره ی کوچک به این موضوعات در همین پاراگراف شد ،  از نظر خودم ، کافی است !!

من تافته ی جدابافته هستم و به سبک خودم وبلاگنویسی می نمایم  و به استانداردهای دنیای وبلاگنویسی اهمیت نمی دهم و برایم مهم نیست که مخاطبان پشت سرم چه می گویند . من به اشتهای مردم غذا نمی خورم و نگران حرف و حدیثهایی که مردم پشت سرم در می آورند نیستم و بی خیال و خونسرد هستم .

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

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


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


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


+


وحید محمدی -  وبلاگ  وحیدمی  


https://vahidmy.blog.ir







بروزرسانی

براثر حملات سایبری به وبلاگ وحیدمی ؛ تمام کامنت های کاربرها و پاسخ های من به کاربرها  ؛ حذف شدند 


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


تاریخ بروزرسانی 


یکشنبه مورخ  29 مرداد 1402 خورشیدی 


نکته : 

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




در پناه خداوند متعال عظیم الشان باشید 

ِ

الهم  عجل  لولیک الفرج . 



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


وحید محمدی . وبلاگ  وحیدمی 


https://vahidmy.blog.ir





https://vahidmy.blog.ir/archive


https://vahidmy.blog.ir/post/764










  • ۹۸/۰۵/۰۱
  • vahidmy

ARM

Assembly

Assembly Compilers

Assembly language

CPU

IDE

Intel

Masm

Masm32

Masm64

Microsoft

Microsoft Macro Assembler

Microsoft_Macro_Assembler

assembly language

c

c plus plus

macro

masm

masm32

vahidmy

visual studio

آشنایی با کامپایلرهای زبان اسمبلی

آشنایی با کامپایلرهای زبان اسمبلی بخش 1

اینتل

بازنویسی کتابخانه های زبانهای سطح بالا برای زبان اسمبلی

برنامه نویسی

برنامه نویسی شیئ گرا در زبان اسمبلی

تصادفی

توابع API ویندوز

توابع سیستم عامل ویندوز

توابع ویندوز

جامعه کاربران مایکروسافت اسمبلر

درایو

رندوم

رهنمود

ریشه

زبان اسمبلی

زبان برنامه نویسی سی

سورس کد ویندوز 2000

سی

سی نوشته شد

سی پلاس پلاس

سینتاکس

شیئ گرا

ماکرو

ماکرو اینستراکشن

مایکروسافت

مایکروسافت اسمبلر

مایکروسافت ماکرو اسمبلر

محیط یکپارچه برای برنامه نویسی

مزایا و معایب مایکروسافت اسمبلر

مستندات زبان اسمبلی

مسم

معروفترین اسمبلر جهان

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

نحو

نوشته شدن ویندوز با زبانهای اسمبلی و سی پلاس پلاس

ویندوز

ویندوز ۲۰۰۰ با زبانهای اسمبلی و سی نوشته شد

ویژوال استودیو

پردازنده آرم

پروتوتایپ

کامپایلرهای زبان اسمبلی

کتابخانه های زبان اسمبلی

گرامر