1 / 18

تهیه وتنظیم: سید مصطفی موسوی

برنامه نویسی به زبان اسمبلی. فصل دوم: زبان اسمبلی و مدل برنامه نویسی. تهیه وتنظیم: سید مصطفی موسوی. انواع زبان های برنامه نویسی. انواع زبان های برنامه نویسی زبان ماشین زبان اسمبلی زبان های سطح بالا. زبان ماشین. زبان ماشین عبارت از کدهایی است که برای ماشین قابل فهم است.

irina
Télécharger la présentation

تهیه وتنظیم: سید مصطفی موسوی

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. برنامه نویسی به زبان اسمبلی فصل دوم: زبان اسمبلی و مدل برنامه نویسی تهیه وتنظیم: سید مصطفی موسوی

  2. انواع زبان های برنامه نویسی • انواع زبان های برنامه نویسی • زبان ماشین • زبان اسمبلی • زبان های سطح بالا

  3. زبان ماشین • زبان ماشین عبارت از کدهایی است که برای ماشین قابل فهم است. • به صورت 0 و 1 می باشد. حافظه برنامه کد فرستادن رجیستر AL در پورت شماره 5 کد جمع کردن رجیستر AL با رجیستر BL

  4. زبان ماشین • نوشتن برنامه به صورت 0 و 1 مشکل و حتی ناممکن است. • خطایابی مشکل است، اگر جای یک 0 و 1 عوض شود ممکن است مفهوم برنامه تغییر پیدا کند. • برای راحتی و کم کردن احتمال اشتباه از زبان های دیگر برنامه نویسی استفاده می کنیم.

  5. زبان اسمبلی • به جای نوشتن برنامه به شکل کدهای 0 و 1، برنامه بوسیله یک عبارت بیان می شود. برنامه به زبان اسمبلی برنامه به زبان ماشین OUT 05,AL کد فرستادن رجیستر AL در پورت شماره 5 ADD AL,BL کد جمع کردن رجیستر AL با رجیستر BL

  6. زبان اسمبلی • نوشتن برنامه به زبان اسمبلی راحت تر از زبان ماشین است. • برنامه ای که به زبان اسمبلی نوشته می شود در نهایت باید به زبان ماشین ترجمه شود تا توسط کامپیوتر قابل اجرا شود. • نرم افزاری که کدهای اسمبلی را به کد ماشین ترجمه می کند اسمبلر نامیده می شود.

  7. زبان های سطح بالا • زبان هایی از قبیل C، Pascal، Java، C# و .... • یک دستور در یک زبان سطح بالا، معادل چندین دستور به زبان اسمبلی می باشد. • دستورات زبان سطح بالا بسیار قوی تر از زبان اسمبلی عمل می کنند. • پس از نوشتن برنامه به زبان سطح بالا باید آنرا به کدهای زبان ماشین تبدیل کرد تا قابل اجرا توسط کامپیوتر باشد. • نرم افزاری که این تبدیل را انجام می دهد کامپایلر نامیده می شود.

  8. مقایسه زبان اسمبلی و زبانهای سطح بالا • مزایای زبان اسمبلی نسبت به زبانهای سطح بالا • برنامه کد ماشین یک برنامه به زبان اسمبلی (پس از تبدیل توسط اسمبلر) فضای کمتری نسبت به کد ماشین همان برنامه به زبان سطح بالا (پس از تبدیل توسط کامپایلر) اشغال می کند. • با توجه به کمتر بودن تعداد بایتهای کد برنامه، اجرای کد نوشته شده به زبان اسمبلی خیلی سریعتر خواهد بود. • در موارد زیر باید از زبان اسمبلی استفاده نمود • برنامه های بلادرنگ • برنامه هایی که کنترل دقیق تری بر روی سخت افزار و ورودی-خروجی ها انجام می دهند • سیستم های میکرو پروسسوری

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

  10. مدل برنامه نویسی میکروپروسسور • مثال • در دستور زیر عمل جمع بر روی داده هایی که در رجیسترهای AL و BL است، انجام می گیرد. • ADD AL,BL • در دستور زیر عمل جمع بر روی داده هایی که در رجیستر AL و مکانی از حافظه که آدرس آن توسط BX مشخص می شود، انجام می گیرد. • ADD AL,[BX]

  11. مدل برنامه نویسی میکروپروسسور • مدل برنامه نویسی میکروپروسسور 8086 شامل 4 گروه رجیستر است: Accumulator AX Base BX Data group Count CX DX Data Stack pointer Base pointer Pointer and Index group Source index Destination Index Instruction Pointer

  12. مدل برنامه نویسی میکروپروسسور • (ادامه…) State and control flags Extra Code Segment group Data Stack

  13. مدل برنامه نویسی میکروپروسسور • رجیسترهای داده یا رجیسترهای همه منظوره Accumulator AX Base BX Data group Count CX DX Data

  14. مدل برنامه نویسی میکروپروسسور • رجیسترهای داده یا رجیسترهای همه منظوره (ادامه ...) • 8 عدد هستند • می توانند به صورت ترکیبی و 16 بیتی درآیند. • کاربرد عمومی: انتقال و ذخیره اطلاعات • AL یا (AX) که Accumulator نامیده می شود، تنها رجیستری است که تمام عملیات انتقال، ریاضی، منطقی و ورودی-خروجی بر روی آن قابل اجراست. • رجیستر BX تنها رجیستر این گروه است که می تواند شبیه رجیسترهای اشاره گر در دستورات مورد استفاده قرار گیرد. • رجیستر CX برای شمارش تعداد دفعات عملیات است که در دستورات loop، شیفت و ... مورد استفاده قرار می گیرد.

  15. مدل برنامه نویسی میکروپروسسور • رجیسترهای اشاره گر و اندیس • 16 بیتی هستند. • به عنوان اشاره گر به آدرس خانه های حافظه می باشند. • می توان از آنها برای انتقال و بعضی دستورات دیگر نیز استفاده کرد. Stack pointer Base pointer Pointer and Index group Source index Destination Index Instruction Pointer

  16. مدل برنامه نویسی میکروپروسسور • رجیستر پرچم • شامل پرچم های کنترل و وضعیت می باشد. • صفر و یک بودن پرچم های وضعیت بیان کننده ایجاد شرایطی در برنامه است که برنامه نویس می تواند با توجه به آن تصمیم لازم را بگیرد. • مانند صفر شدن نتیجه یک عمل ریاضی • صفر و یک کردن پرچم کنترل، باعث فعال شدن یا نشدن بعضی از عملیات می شود. • مانند وقفه State and control flags

  17. مدل برنامه نویسی میکروپروسسور • رجیستر های سگمنت Extra Code Segment group Data Stack

  18. مدل برنامه نویسی میکروپروسسور • رجیستر های سگمنت (ادامه ...) • شامل 4 رجیستر است. • ES سگمنت اضافی • CS سگمنت کد • DS سگمنت داده • SS سگمنت پشته • برای ساختن آدرس مورد استفاده قرار می گیرند و16 بیت با ارزش آدرس را نگهداری می کنند. • با استفاده از آنها مدل سگمنت بندی در 8086 پیاده شده است.

More Related