منظور از زبان اسمبلی چیست؟
زبان اسمبلی یک زبان برنامهنویسی سطح پایین (Low-level Programming Language) است که دستوراتش معادل کدهای ماشین (Machine Code) هستند. به عبارت دیگر، مجموعهای از دستورات باینری (Binary) که مقادیری را به داخل رجیسترهای CPU (یا ریزپردازندههای دیگر) میریزند یا از آن برمیدارند.
مقایسه زبان اسمبلی و زبان های سطح بالا:
زبان های برنامه نویسی در دو سطح کلی طبقه بندی می شوند: زبان های سطح بالا و سطح پایین.
هر پردازنده ها قادر به درک و اجرای مجموعه ای از دستورالعمل های خاص است که زبان ماشین نامیده می شود. زبان ماشین در سطح پایین تنها زبان قابل درک پردازنده است که به صورت مجموعه ای از اعداد باینری است. مفسری بنام ریزبرنامه (Microprogram) دستورات زبان ماشین را به سیگنال های سخت افزاری تفسیر و ترجمه می کند.
اکثر برنامه نویسان با زبان های سطح بالا مانند C++ یا Java کار می کنند که هر عبارت آن به چند دستورالعمل زبان ماشین ترجمه می شود. نوشتن برنامه در زبان های سطح بالا خصوصا در محیط های ویژوال راحت تر، سریع تر و با هزینه کمتری انجام می شود.
درک معنی کدهای باینری زبان ماشین برای انسان کاری دشوار و خسته کننده است. به همین دلیل برای هر خانواده از پردازنده ها یک زبان اسمبلی ارائه شد که دستورالعمل های زبان ماشین را به صورت نمادی و قابل فهم تر نشان می دهند.
مثال ۱٫ اعداد دودئی زیر یک دستورالعمل زبان ماشین خانواده اینتل است که عدد ۵ را در ثبات AL قرار می دهد.
یک برنامه اسمبلی مانند برنامه های سطح بالا به صورت متنی نوشته می شود. هر دستورالعمل زبان اسمبلی یک کد الفبائی کوتاه (mnemonic) از یک دستورالعمل ماشین است، که به این صورت معنی دستور واضح تر از کد زبان ماشین می شود. بین عبارات زبان اسمبلی و دستورالعمل های زبان ماشین تناظر یک به یک برقرار است. یعنی هر دستورالعمل اسمبلی دقیقا یک دستورالعمل زبان ماشین را نشان می دهد و بالعکس، در حالیکه در زبان سطح بالا یک عبارت معمولا به چندین دستورالعمل ماشین تبدیل می شود.
تعداد گذرها:
دو نوع اسمبلر بر اساس تعداد گذرها از روی کد منبع برای تولید برنامهٔ قابل اجرا وجود دارد:
اسمبلرهای یکبار-گذر فقط یک بار از روی کد عبور میکنند. هر نمادی که قبل از تعریف شدنش استفاده شده باشد به یک خطا (به انگلیسی: errata) در پایان کد آبجکت (یا حداقل، بعد از محل تعریف در کد آبجکت) نیاز دارد تا به پیوندده اعلام کند که برگرد و حفرهای را که بر اثر استفاده از این نماد قبل از تعریف شدنش، جاگذاشته شده بود بازنویسی کن.
اسمبلرهای چندبار-گذر جدولی از تمامی نمادها و مقادیر آنها در گذر اول ایجاد میکنند و سپس در گذرهای بعدی با استفاده از این جدول، نمادها را با مقادیر آنها جایگزین کرده و فایل اجرایی را تولید میکنند.
هدف اصلی در استفاده از اسمبلرهای یکبار-گذر، سرعت اسمبل کردن بود زیرا در گذر دوم به برگرداندن و بازخوانی نوار یا کارت پانچ، که در گذشته برای ذخیرهسازی کدها استفاده میشدند، نیاز بود. این مشکل بعدها با وجود کامپیوترهای جدید برطرف شد. مزیت اسمبلرهای چندبار-گذر این است که در نبود خطاها در کد آبجکت، فرایند پیونددهی سریعتر انجام میشود.
اسمبلرهای سطح-بالا:
اسمبلرهای پیچیدهتر سطح-بالا انتزاعهای زبانی زیر را فراهم میکنند:
ساختارهای کنترل پیشرفته
تعریف و فراخوانی رویهها و توابع سطح-بالا
انواع دادهٔ انتزاعی مانند رکوردها و ساختارها (به انگلیسی: structures/records)، کلاسها و مجموعهها
پردازش ماکرو پیشرفته
قابلیتهای برنامهنویسی شیءگرا مانند کلاسها، انتزاع و وراثت
جهت ثبت نام در دوره آموزش مجازی زبان برنامه نویسی اسمبلی ویندوز با مشاورین ما در تماس باشید.
این دوره به صورت غیر حضوری برگزار می گردد و محتوای آموزشی الکترونیکی در قالب CD یا DVD به آدرستان ارسال میشود.
پس از پایان دوره گواهی آموزشی رایگان و معتبر با قابلیت ترجمه رسمی دریافت می نمایید
مشاوره رایگان : ۰۲۱۲۸۴۲۸۴ و ۰۹۳۳۰۰۲۲۲۸۴ و ۰۹۳۳۰۰۳۳۲۸۴ و ۰۹۳۳۰۰۸۸۲۸۴ و ۰۹۳۳۰۰۹۹۲۸۴