معرفی زبان برنامه نویسی Assembly language

 اگر اطلاعاتی در مورد زبان اسمبلی ندارید ما اینجاییم تا به معرفی زبان برنامه نویسی Assembly language بپردازیم ، پس تا انتهای این مقاله با ما همراه باشید .

معرفی زبان برنامه نویسی Assembly language و این که زبان اسمبلی چیست؟

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

زبان‌های برنامه‌نویسی سطح پایین مانند زبان اسمبلی، پل ضروری بین سخت‌افزار زیربنایی رایانه و زبان‌های برنامه‌نویسی سطح بالاتر – مانند پایتون یا جاوا اسکریپت – هستند که برنامه‌های نرم‌افزاری مدرن در آن نوشته می‌شوند.

معرفی زبان برنامه نویسی Assembly language ، و نحوه عملکرد آن

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

البته، هیچ انسانی قادر به ساختن برنامه های نرم افزاری مدرن با برنامه نویسی صریح یک و صفر نخواهد بود. در عوض، برنامه نویسان انسانی باید بر لایه های مختلف انتزاع تکیه کنند که به خود اجازه دهند دستورات خود را در قالبی که برای انسان شهودی تر است بیان کنند. به طور خاص، برنامه نویسان مدرن دستوراتی را در به اصطلاح «زبان های سطح بالا» صادر می کنند که از نحو بصری مانند کلمات و جملات انگلیسی کامل و همچنین عملگرهای منطقی مانند «And»، «Or» و «Else» استفاده می کنند. آشنا به استفاده روزمره

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

نمونه دنیای واقعی یک زبانAssembly language :

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

یکی از این نمونه‌ها که مربوط به امور مالی است، پلتفرم‌های معاملاتی با فرکانس بالا (HFT) است که توسط برخی شرکت‌های مالی استفاده می‌شود. در این بازار، سرعت و دقت معاملات برای اثبات سودآوری استراتژی های معاملاتی HFT از اهمیت بالایی برخوردار است. بنابراین، برخی از شرکت‌های HFT به منظور برتری در برابر رقبای خود، نرم‌افزار معاملاتی خود را مستقیماً به زبان‌های اسمبلی نوشته‌اند و در نتیجه انتظار برای ترجمه دستورات یک زبان سطح بالاتر به زبان ماشین را غیرضروری می‌کنند.

اگر قصد دارید برنامه نویسی را به شغل خود تبدیل کنید، ایده خوبی است که در مرحله ای یک زبان برنامه نویسی مانند زبان اسمبلی را یاد بگیرید. چندین دلیل برای این وجود دارد. اول اینکه هنوز محبوب است و در فهرست TIOBE در بین 20 رتبه برتر قرار دارد. Stack Overflow Developer Survey 2020، زبان اسمبلی را در رتبه هفدهم در میان پرتقاضاترین زبان های برنامه نویسی قرار داد. (اما من نمی خواهم حقایق را نادرست بیان کنم، زیرا زبان اسمبلی نیز در لیست مخوف ترین زبان ها قرار دارد – در واقع، در اینجا رتبه چهارم را دارد. این زبان همچنین به دلیل منحنی یادگیری شیب دار خود بدنام است.)

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

به عنوان مثال، هنگام نوشتن درایورهای دستگاه برای یک ماشین، برنامه نویسان اغلب به کدگذاری اسمبلی تکیه می کنند. برنامه نویسی اسمبلی نیز در مراحل خاصی از کامپایل استفاده می شود. به عنوان مثال، مرحله بهینه سازی کد کامپایلرها اغلب شامل کدگذاری اسمبلی است. اساساً، هنگامی که شما در حال برنامه‌نویسی بر روی فلز لخت هستید (زمانی که مستقیماً به سخت‌افزار دسترسی دارید)، همچنان به کدنویسی اسمبلی نیاز دارید، هر برنامه‌ای که ممکن است باشد.

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

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

جدیت در برنامه نویسی

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

طبق ویکی‌پدیا، «برنامه‌ای که به زبان اسمبلی نوشته می‌شود از مجموعه‌ای از دستورالعمل‌های پردازشگر یادگاری و دستورات متا (به شکل‌های مختلف به‌عنوان دستورالعمل‌ها، شبه دستورالعمل‌ها و شبه عملیات‌ها شناخته می‌شوند)، نظرات و داده‌ها تشکیل شده است.

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

 CISC (کامپیوتر مجموعه دستورات پیچیده) سعی می کند یک کار را در کمترین خط کد اسمبلی انجام دهد. در حالی که پردازنده‌های RISC (کامپیوتر مجموعه دستورات کاهش‌یافته) معمولاً از دستورالعمل‌های ساده‌ای استفاده می‌کنند که می‌توانند در یک چرخه ساعت اجرا شوند. زبان های اسمبلی مانند زبان اسمبلی MIPS، زبان اسمبلی ARM و غیره با معماری RISC مرتبط هستند.

 زبان اسمبلی x86 به طور کلی به عنوان یک زبان اسمبلی مبتنی بر CISC در نظر گرفته می شود. اما این طبقه‌بندی از زبان‌های اسمبلی کم‌معنا می‌شود، زیرا معماری‌های بیشتر و بیشتری تمایل دارند ترکیبی از هر دو CISC و RISC باشند.

با توجه به اینکه اکثر لپ‌تاپ‌ها دارای پردازنده‌های اینتل یا AMD هستند (که هر دو از زبان اسمبلی x86 استفاده می‌کنند)، چگونه می‌توانیم یک زبان اسمبلی مبتنی بر RISC را آزمایش کنیم؟ من از شما می خواهم که از Raspberry Pi, یک کامپیوتر تک برد کوچک استفاده کنید.

 از زبان اسمبلی ARM استفاده می کند. اما در حین نوشتن این مقاله کامپیوتر رزبری پای همراهم نبود. بنابراین من باید به یک شبیه ساز ARM یا یک اسمبلر آنلاین ARM وابسته می شدم. یک شبیه ساز ARM به نام VisUAL وجود دارد که می تواند در لپ تاپ شما نصب شود تا برنامه زبان اسمبلی ARM را که برای رایانه Raspberry Pi شما در نظر گرفته شده است آزمایش کند.

اما من استفاده از اسمبلر ARM آنلاین به نام OakSim را انتخاب کردم. URL https://wunkolo.github.io/OakSim/ شما را به اسمبلر آنلاین OakSim می برد. کد اسمبلی ARM که در زیر نشان داده شده است با استفاده از این اسمبلر اجرا می شود.  شما می توانید برای دریافت آموزش های ویژه که مختص زبان برنامه نویسی Assembly language هست از طریق سایت انقلاب پلاس و لینکی که در زیر مقاله ذکر شده به دانلود و خرید آن بپردازید‌

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