1 / 22

زبان اسمبلی

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

liza
Download Presentation

زبان اسمبلی

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. امتیازات زبان اسمبلی • حجم اشغال حافظه کمتر و سرعت اجرای بالا • انجام کارهای فوق العاده بیشتر • سازگاری مناسب با برنامه هایی که زمان بلادرنگ دارند • راحت تر نوشتن برنامه های مقیم در حافظه

  4. ملزومات زبان اسمبلی • کامپیوتر شخصی همساز با IBM • سیستم عامل DOS و آشانیی با فرامین آن • ویراستار برای تایپ و ویرایش کد • مترجم زبان اسمبلی، اسمبلر، مانند توربو اسمبلر یا ماکرو اسمبلر • آشنایی با سیستم اعداد و ساختمان ماشین

  5. آماده سازی و اجرای برنامه • تایپ در یک ویراستار متنی و ذخیره با پسوند .asm • اسمبل نمودن برنامه با اسمبر مانند توربو اسمبلر یا ماکرو اسمبلر. فایل با پسوند .obj ساخته میشود • پیوند دادن برنامه با استفاده از پیوند دهنده. تبدیل .obj به .exe • اجرای برنامه و رفع خطا در صورت وجود

  6. شناسه • از عناصر برنامه اسمبلی میباشد: نام برنامه،زیربرنامه،برچسب،عملوند • شناسه باید دارای نام باشد. • ترکیبی از حروف a تا z و A تا Z ، ارقام صفر تا 9 و کاراکتر هایی مانند ?,$,-,@ • نام شناسه نباید با ارقام شروع شود • از @ برای شروع نام استفاده نکنید. • حداکثر طول نام هر شناسه 31 کاراکتر است.

  7. قالب کلی دستورات [شناسه] دستورالعمل [عملوندها][;توضیحات] • دستورالعمل • دستوراتی که به کد زبان ماشین ترجمه می شوند. • دستوراتی که راهنمای اسمبلر نام دارند.

  8. دستور العمل دو عملوندی [شناسه] دستورالعمل <عملوند مقصد> , <عملوند منبع> [;توضیحات] • عملوند مقصد جایی است که نتیجه عمل دستورالعمل باید در آنجا قرار می گیرد. • عملوند منبع جایی است که اطلاعات مورد نیاز دستورالعمل در آنجا قرار می گیرد.

  9. تعریف سگمنت ها نام سگمنت segment پارامترها ... نام سگمنت ends • پارامتر ها • پارامتر تنظیم • پارامتر ترکیب • پارامتر کلاس نام سگمنت segment [پارامتر تنظیم][پارامتر ترکیب][پارامتر کلاس]

  10. پارامتر های سگمنت – پارامتر تنظیم • تعیین مرز سگمنت از نقطه شروع • BYTE : آدرس سگمنت از هر نقطه ای از حافظه • WORD : آدرس سگمنت از هر نقطه ای از حافظه که آدرس آن زوج باشد • PARA : آدرس سگمنت از مرز پاراگراف ( جایی که بر 16 قابل قسمت باشد) • PAGE : آدرس سگمنت از هر جایی که بر 256 قابل قسمت باشد • اگر پارامتر تنظیم ذکر نشود پیش فرض سیستم PARA در نظر گرفته میشود.

  11. پارامتر های سگمنت – پارامتر ترکیب • مشخص کننده پیوند سگمنت جاری با سایر سگمنت ها (پس از ترجمه برنامه) • NONE: به طور منطقی سگمنت از سگمنت های دیگر جدا است ولی ممکن است به طور فیزیکی در کنار هم باشند. فرض میشود هر سگمنت آدرس پایه مخصوص به خود را دارد. • PUBLIC: کنار هم قرار دادن سگمنت های PUBLIC با نام و کلاس یکسان توسط برنامه پیوند دهنده • STACK: برنامه پیوند دهنده پشته را عمومی در نظر می گیرد.حداقل یک پشته را در نظر می گیرد. در صورت وجود چند پشته ،SP به اولین پشته اشاره خواهد کرد. • COMMON: برنامه پیوند دهنده به سگمنت های با نام و کلاس یکسان، آدرس یکسان می دهد. • AT :به صورت آدرس پاراگراف AT به کار می رود که آدرس پاراگراف قبلا باید تعریف شده باشد.

  12. پارامتر های سگمنت – پارامتر کلاس • کمک کردن به پیوند دهنده جهت پیوند سگمنت ها با نام مختلف • مشخص کردن کردن سگمنت ها • کنترل ترتیب سمگمنت ها datasg segment para public ‘data’ … darasgends stacksg segment para stack ‘stack’ … stacksg ends

  13. ویژگی های سگمنت کد و تعریف procedure نام رویهproc far … نام رویهendp • حاوی دستور العمل های برنامه • حاوی یک یا چند procedure سگمنت کدی که از یک رویه تشکیل شده است: codesg segment para none ‘code’ pnameproc far … pnameendp codesg ends

  14. تعیین اهداف هر سگمنت • بعد از تعیین سگمنت ها باید اهداف هر سگمنت را مشخص شود. • هر سگمنت به ثبات آن سگمنت مرتبط میشود. • از راهنمای(directive) assume استفاده میکنیم: assumecs:سگمنت کد, ds:سگمنت داده, es:سگمنت اضافی, ss:سگمنت پشته

  15. تعیین اهداف هر سگمنت stacksg segment para stack ‘stack’ … stacksg ends datasg segment para public ‘data’ … darasgends codesg segment para ‘code’ proc1 proc far assume cs:codesg, ds:datasg, ss:stacksg … proc1 ends codesgends

  16. تعریف داده ها در سگمنت داده ها با استفاده از دستور db • جهت تعریف داده ها در برنامه اسمبلی باید آن ها را در سگمنت داده ها قرار دهید. • دستور db برای داده های یک بایتی به کار می رود. • مقادی بازه اعداد چقدر است؟ شناسهdbمقدار pl1db 0 ;value is 00 pl2 db -128 ;value is 80 pqdb 255 ;value is FF

  17. تعریف داده ها در سگمنت داده ها با استفاده از دستور db • در dbمیتوان مقادیر کاراکتری و رشته ای را تعریف کرد. • تعریف کاراکتر از ‘ (کوتیشن تنها) • تعریف رشته از “ (کوتیشن دوتایی) • نکته: اگر رشته ای به کوتیشن دوتایی محصور شود، وجود کوتیشن تنها در آن بعنوان یک کاراکتر داده محسوب می شود. str1 db ‘x’ pl2 db “Jack’s book” pqdb “my first code”

  18. تعریف داده ها در سگمنت داده ها با استفاده از دستور db • دستور فوق سه بایت از حافظه را تعریف می کند. • مقادیر 05h,0fh,1eh را در آن قرار می دهد. • امکان تعریف چند مقدار در دستور db وجود دارد. pl1db 5, 15, 30

  19. تعریف داده ها در سگمنت داده ها با استفاده از دستور dw • برای تعریف داده های یک کلمه ای به کار می رود. • یک کلمه چند بایت است؟ بازه ی قابل قبول برای این dw چقدر است؟ شناسهdwمقدار w1dw-32768 ;value is 8000 w2dw65535 ;value is FFFF w3dw-10000 ;value is FC18

  20. تعریف داده ها در سگمنت داده ها با استفاده از دستور dw • اگر برای تعریف کاراکتر از دستور dw استفاده کنیم کاراکتر مورد نظر در بایت کم ارزش قرار می گیرد و محتویات بایت با ارزش 00 خواهد شد. • در صورت تعریف رشته با دستور dw، رشته های هداکثر باید 2 کاراکتر باشند. str1 dw ‘x’ str2dw“no” str3dw‘ok’

  21. تعریف داده ها در سگمنت داده ها با استفاده از دستور dw • دستور فوق چهار کلمه از حافظه را تعریف می کند. • مقادیر 05h,0fh,1eh را در آن قرار می دهد. • امکان تعریف چند مقدار در دستور dwوجود دارد. pl1dw 5, 15, 30

  22. تعریف داده ها در سگمنت داده ها با استفاده از دستور dw • دستور فوق چهار کلمه از حافظه را تعریف می کند. • مقادیر 05h,0fh,1eh را در آن قرار می دهد. • درداخل یک کلمه بایت ها به ترتیب معکوس ذخیره می شوند. • بایت کم ارزش در آدرس پایین تر قرار دارد. مقدار 1234h pl1dw 5, 15, 30

More Related