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

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

 

 

 

 

 

 

 

زبان اَسمبلی (به انگلیسی: Assembly language) یا همگذاری یک زبان برنامه‌نویسی سطح پایین برای رایانه‌ها و دیگر دستگاه‌های برنامه‌پذیر است که رابطۀ یک-به-یک با دستورالعمل‌های زبان ماشین معماری رایانه دارد. هر زبان اسمبلی مختص به یک معماری رایانه خاص است، برخلاف بیشترزبان‌های برنامه‌نویسی سطح بالا که با معماری‌های مختلف سازگار هستند ولی برای اجرا شدن به مفسر و مترجم نیاز دارند.

زبان اسمبلی با استفاده از یک برنامه جانبی به نام اسمبلر یا همگذار، به کد ماشین قابل اجرا تبدیل می‌شود؛ به این فرایند تبدیل، اسمبل کردن (بهانگلیسی: Assembling) گفته می‌شود.

زبان اسمبلی از یادیارها برای نشان دادن هر دستور ماشین سطح-پایین یا آپ‌کد استفاده می‌کند. بعضی آپ‌کدها به یک یا چند عملوند به عنوان بخشی ازدستورالعمل نیاز دارند، و بیشتر اسمبلرها می‌توانند لیبل‌ها و نمادهایی را به عنوان عملوند، برای نشان دادن آدرس‌های حافظه و ثابت‌های عددی بپذیرند. ماکرو اسمبلرها نیز قابلیت درشت‌دستوری (به انگلیسی: Macroinstruction) را شامل می‌شوند که این امکان را به وجود می‌آورد که متن یک کد زبان اسمبلی با یک نام از پیش تعیین شده در خلال متن یک کد دیگر استفاده شود. بیشتر اسمبلرها مکانیزم‌های اضافی برای تسهیل فرایند توسعه برنامه، کنترل فرایند اسمبل کردن و پشتیبانی از اشکال‌زدایی ارائه کرده‌اند.

اسمبلر[ویرایش]

اسمبلر برنامه‌ای است که با تبدیل یادیارهای دستوری اسمبلی (به انگلیسی: Assembly instruction mnemonics) به آپ‌کدها و جایگزینی شناسه‌ها با آدرس‌های حافظه، کد هدف (به انگلیسی:Object code) را به وجود می‌آورد. استفاده از ارجاعات نمادی از ویژگی‌های کلیدی اسمبلرها است که از محاسبات خسته‌کننده و به‌روزرسانی‌های دستی آدرس‌ها بعد از تغییر کد برنامه توسط برنامه‌نویس جلوگیری می‌کند. بیشتر اسمبلرها از قابلیت ماکرو نیز بهره می‌برند که این امکان را به وجود می‌آورد تا یک نام خاص برای یک تکه کد مشخص شود و سپس از آن نام در قسمت‌های مختلف برنامه استفاده شود و در هنگام اسمبل کردن برنامه تکه کد مربوطه جایگزین نام آن شود؛ به عنوان مثال از این روش برای تولید توالی‌های دستوری کوتاه رایج در خلال متن برنامه بجای فراخوانی رویه‌ها استفاده می‌شود.

اسمبلرها از دهه ۱۹۵۰ مورد استفاده قرار گرفتند و نوشتن آن‌ها بسیار راحت‌تر از نوشتن متجرم‌ها برای زبان‌های برنامه‌نویسی سطح بالا است بطوریکه هر دستور یادیاری و هر آدرس حالت ترکیبی این زبان مستقیماً به یک آپ‌کد زبان ماشین تبدیل می‌شود. اسمبلرهای جدید، به طور خاص برای معماری‌های ریسک، مانند اسپارک و پاور، هم‌مانند معماری ایکس۸۶ و ایکس۸۶-۶۴، با بهینه‌سازیزمان‌بندی دستورالعمل‌ها باعث استفاده کارآمد از خط لولۀ واحد پردازش مرکزی می‌شوند.

برخی از رایج‌ترین اسمبلرهای معماری ایکس۸۶ عبارتند از:

مایکروسافت ماکرو اسمبلر (به انگلیسی: Microsoft Macro Assembler یا MASM).نت‌واید اسمبلر (به انگلیسی: Netwide Assembler یا NASM).گنو اسمبلر (به انگلیسی: Gnu Assembler یا GAS).توربو اسمبلر (به انگلیسی: Turbo Assembler یا TASM).تعداد گذرها

دو نوع اسمبلر بر اساس تعداد گذرها از روی کد منبع برای تولید برنامۀ قابل اجرا وجود دارد:

اسمبلرهای یکبار-گذر فقط یک بار از روی کد عبور می‌کنند. هر نمادی که قبل از تعریف شدنش استفاده شده باشد به یک خطا (به انگلیسی: errata) در پایان کد آبجکت (یا حداقل، بعد از محل تعریف در کد آبجکت) نیاز دارد تا به پیوندده اعلام کند که برگرد و حفره‌ای را که بر اثر استفاده از این نماد قبل از تعریف شدنش، جاگذاشته شده بود بازنویسی کن.اسمبلرهای چندبار-گذر جدولی از تمامی نمادها و مقادیر آن‌ها در گذر اول ایجاد می‌کنند، و سپس در گذرهای بعدی با استفاده از این جدول، نمادها را با مقادیر آن‌ها جایگزین کرده و فایل اجرایی را تولید می‌کنند.

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

اسمبلرهای سطح-بالا

اسمبلرهای پیچیده‌تر سطح-بالا انتزاع‌های زبانی زیر را فراهم می‌کنند:

ساختارهای کنترل پیشرفتهتعریف و فراخوانی رویه‌ها و توابع سطح-بالاانواع داده انتزاعی مانند رکوردها و ساختارها (به انگلیسی: structures/records)، کلاس‌ها و مجموعه‌هاپردازش ماکرو پیشرفتهقابلیت‌های برنامه‌نویسی شیءگرا مانند کلاس‌ها، انتزاع و وراثت

 

فهرست مطالب:

فصل اول: نمایش داده ها در کامپیوتر

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

اعداد دودویی و شانزده شانزدهی

نمادها در نمایش اعداد در مبناها

سیستم ارزش مکانی مبنای دو

سیستم ارزش مکانی مبنای شانزده

و...

فصل دوم: قسمت های یک سیستم کامپیوتری

سخت افزار

واحد پردازش مرکزی

نرم افزار

حافظه اصلی

ثبات ها

دستگاههای ورودی/خروجی

سیستم عامل

ویرایشگرهای متن

مترجم یک زبان و پیونددهنده برنامه

مفسرها

کامپایلرها

اسمبلر

و...

فصل سوم: استفاده از اسمبلر

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

حالت های آدرس دهی

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

عناصر دستورالعمل

شکل کلی برنامه

عملوند Start

دستور DB

سگمنت کد

عملوندهای دستورات DB و DW

عملگر DUP

دستور اسمبلر

ثبات های آدرس دهی غیرمستقیم

ماکروی output

ماکروی inputs

و...

فصل چهارم: دستورالعمل های اساسی

انتقال داده ها بین مکانهای مختلف حافظه

مفهوم کارایی زمان

مفهوم کارایی حافظه

دستورالعمل mov

دستور العمل xcgh

جمع و تفریق مکمل 2

دستورالعمل add

دستورالعمل Sub

دستورالعمل های inc و dec

دستورالعمل های neg

دستورالعمل های ضرب

mul و imul

دستورالعمل های تقسیم

دستورالعمل های idiv و div

جمع و تفریق مکمل 2 با اعداد بزرگتر

دستورالعمل adc

دستورالعمل sbb

کنترل کردن نشانه CF

و...

فصل پنجم: انشعاب و حلقه

پرش های غیرشرطی

پرش های شرطی

دستور CMP

پیاده‌سازی حلقه‌های while، until و for

حلقه‌های for در زبان اسمبلی

آرایه ها

انواع پرش مستقیم

و...

فصل ششم: روال ها

بدنه یک روال؛ دستورالعمل‌های CALL و RETURN

Call procedure

دستورالعمل ret

مراحل لازم برای یک برنامه قابل اجرا

دستورالعمل‌های PUSH و POP؛ داده‌های محلی

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

نشان گذاری برای آدرس دهی مبنا

بازگشت پذیری

و...

فصل هفتم: عملیات رشته ها

استفاده از دستورالعمل‌های رشته‌ای

پیشوندهای تکرار

پویش رشته ای

ذخیره رشته ای

ترجمه کاراکترها

تبدیل یک عدد مکمل دو به یک رشته اسکی

و...

فصل هشتم: سایر حالت های آدرس دهی

آدرس دهی بلاواسطه

دستیابی غیر پیاپی عناصر یک آرایه

ساختارها

و...

فصل نهم: دستکاری بیت ها

عملیات منطقی

کاربردهای دیگر دستورالعمل‌های منطقی

دستورالعمل‌های شیفت و دوران

تبدیل یک رشته اسکی به یک عدد صحیح مکمل 2

و...

فصل دهم: وقفه وردی/خروجی

دستورالعمل int و جدول بردار وقفه‌ها

درخواست توابع DOS

ورودی/خروجی فایل‌های پیاپی با استفاده از DOS

کدهای خطا

ورودی/خروجی بدون سیستم‌عامل

و...

فصل یازدهم: پردازش اسمبلی

اسمبلی دوگذری

چند دستور اسمبلر

و...

فصل دوازدهم: ماکروها و اسمبلی شرطی

تعریف و بسط دادن ماکروها

تفاوت روال و ماکرو

اسمبلی شرطی

ماکروهای فایل IO.H

و...



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