هادی ناصح 18854 اشتراک گذاری ارسال شده در 30 آذر، ۱۳۸۹ برنامه نویسی اسمبلی: دسترسی به منابع سخت افزار و نرم افزار سیستم بعد از زبان ماشین، زبان اسمبلی نزدیک ترین زبان به زبان قابل فهم رایانه است و در واقع قدیمی ترین زبان برنامه نویسی است. این زبان قدرتمندترین زبان از نظر توانایی انجام کار است. اما از نظر سهولت برنامه نویسی، نسبت به دیگر زبان های برنامه سازی، در پایین ترین درجه قرار دارد. برای برنامه نویسی به این زبان، برنامه نویس باید تا حد زیادی از ساختار فایل های اجرایی، ساختار و ساختمان داده های حافظه و طریقه دسترسی به آنها، سخت افزار، وقفه های سخت افزاری و نرم افزاری و... که همگی از مفاهیم بنیادی یک رایانه هستند، اطلاع و آگاهی داشته باشد.با استفاده از زبان اسمبلی می توان به تمام منابع سخت افزاری و نرم افزاری دسترسی مستقیم داشت و به کلیه نقاط حافظه دست یافت. برخی از ناحیه های مربوط به سیستم عامل، ناحیه های سیستمی و ممنوعه هستند که توسط سیستم عامل رزرو می شوند و زبان های برنامه نویسی مجاز به استفاده مستقیم از آنها نیستند، اما زبان اسمبلی هیچ گونه محدودیتی در این زمینه ندارد. هر عملی با مسوولیت برنامه نویس قابل انجام است و در صورت بروز اشکال یا هر مساله ای، اشکالی به هیچ کس جز برنامه نویس وارد نیست.برنامه های نوشته شده با اسمبلی، به دلیل نداشتن کد اضافه، بسیار سریع بوده و به عبارتی با نهایت سرعت ممکن در ماشین اجرا می شوند. ضمن این که حجم فایل های ساخته شده نیز حداقل میزان ممکن است. برخلاف برنامه های ساخته شده با زبان های سطح بالا که معمولا حجم آنها به نسبت زیاد است، یک برنامه اسمبلی می تواند امور زیادی را با حداقل میزان کد انجام دهد. به عنوان مثال، ممکن است یک برنامه نوشته شده با یک زبان سطح بالا که قرار است دو عدد را با هم جمع کرده و نتیجه را در خروجی نمایش دهد، چیزی حدود 50 تا 100 کیلوبایت شود. زیرا کدهای دیگری نیز به فایل اجرایی این گونه زبان ها اضافه می شود، اما معادل همین برنامه با زبان اسمبلی شاید به یک کیلوبایت هم نرسد. ضمنا برنامه های نوشته شده با اسمبلی، حافظه اصلی را نیز کمتر اشغال می کنند. وابستگی بهcpu زبان اسمبلی زبانی است که هر دستور آن معادل یک دستورالعمل cpu است. بنابراین هر خانواده از پردازنده ها، دستورات اسمبلی خاص خود را دارند. بنابراین زبان اسمبلیcpu های اینتل با amd متفاوت است.درون هر cpu تعداد مشخصی ثبات (register) وجود دارد. ثبات ها، حافظه هایی کوچک، گرانقیمت و بسیار سریع هستند که مستقیما با پردازنده در ارتباطند و با سرعت cpu کار می کنند. اگر ظرفیت و تعداد ثبات های cpu افزایش یابد، قیمت آن بسیار گران خواهد شد و خرید آن به صرفه نخواهد بود. بنابراین با همین تعداد محدود، برنامه نویسی انجام می شود.یک برنامه نویس اسمبلی به طور کامل حافظه اصلی و تعدادی از ثبات های cpu را در اختیار دارد و می تواند با استفاده از آنها و به صلاحدید خود، برنامه خود را طراحی و پیاده سازی کند. مراحل ساخت برنامه یک برنامه اسمبلی در یک فایل متنی و در یک ویراستار معمولی مثل notepad نوشته می شود. پس از آن که برنامه به طور کامل نوشته شد به عنوان ورودی به نرم افزاری به نام اسمبلر ارسال می شود. اسمبلر کد را بررسی می کند و در صورتی که خطایی در آن وجود نداشت، یک فایل با پسوند obj تولید می کند.محتوای این فایل object code یا همان کدهای زبان ماشین است. این کدها هنوز قابل اجرا توسط ماشین نیستند و برای اجرا باید به فایل اجرایی تبدیل شوند. برنامه ای دیگر به نام پیوند دهنده (linker) وجود دارد که یک یا چند فایلobj را به عنوان ورودی گرفته و یک فایل اجرایی با پسوند .exe تولید می کند. این فایلی است که می تواند مستقیما روی ماشین اجرا شود. فایل مربوط به پیوند دهنده معمولا فایلی به نام link.exe است. برای اسمبل کردن کدهای برنامه نیز، نگارش های مختلفی از اسمبلرها وجود دارد که دو نسخه معروف و پرکاربرد آنها masm و tasm است.masm یا micro assembler ، محصول شرکت مایکروسافت وtasm یاturbo assembler محصول شرکت بورلند(borland) است. گاهی برنامه هایی که با یکی از اسمبلرها سازگار است، در دیگری با خطا مواجه می شود که با اندکی تغییر می توان خطا را رفع کرد.برای هر خانواده از پردازنده ها، یک نسخه اسمبلر مخصوص توسط شرکت های سازنده عرضه می شود و زبان های برنامه سازی سطح بالا که روی رایانه های مختلف اجرا می شوند، به هنگام ساخت فایل اجرایی باید از اسمبلرهای مخصوص آن پردازنده استفاده کنند. 4 لینک به دیدگاه
ارسال های توصیه شده