دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۵
  • اردیبهشت

جلسه ۱۹ : ماکروها در زبان اسمبلی (Assembly)

  • دسته‌بندی‌ها :
جلسه ۱۹ : ماکروها در زبان اسمبلی (Assembly)
    • جزئیات
    • نوع محتواآموزشی

      همراهان عزیز وب سایت آموزشی پی وی لرن وقتتون بخیر و شادی، با آموزش زبان برنامه نویسی اسمبلی (Assembly) در خدمتتون خواهیم بود. در این قسمت از آموزش، ماکروها در زبان اسمبلی (Assembly) را توضیح خواهیم داد.

      ماکروها در زبان اسمبلی (Assembly)

      نوشتن یک ماکرو روش دیگری برای اطمینان از برنامه نویسی مدولار به زبان اسمبلی است.

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

      در NASM ، ماکروها با دستورالعمل های macro% و endmacro% تعریف می شوند.

      ماکرو با دستورالعمل  macro% آغاز می شود و با بخشنامه endmacro% به پایان می رسد.

      نحو سینتکس تعریف ماکرو به شکل زیر است.

      مثال : 

      number_of_params پارامترهای عدد را مشخص می کند ، macro_name نام ماکرو را مشخص می کند.

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

      به عنوان مثال ،  در برنامه ها نوشتن رشته ای از کاراکترها در صفحه، معمولا نیاز است. برای نمایش رشته ای از کاراکترها ، دنباله ای از دستورالعمل ها را نیاز دارید.

      مثال : 

      در مثال فوق از نمایش یک رشته کاراکتر ، رجیسترهای EAX ، EBX ، ECX و EDX توسط تابع فراخوان INT 80H استفاده شده است. بنابراین ، هر بار که نیاز به نمایش روی صفحه دارید ، باید این رجیسترها را روی پشته ذخیره کنید ، INT 80H فراخوانی کنید و سپس مقدار اصلی رجیسترها را از پشته بازیابی کنید. بنابراین ، نوشتن دو ماکرو برای ذخیره و بازیابی اطلاعات می تواند مفید باشد.

      ما مشاهده کردیم که برخی از دستورالعمل هایی مانند IMUL ، IDIV ، INT و غیره ، به بعضی از اطلاعات نیاز دارند تا در برخی از رجیسترهای خاص ذخیره شوند و حتی مقادیر برگشتی را در برخی از رجیسترهای خاص ذخیره کنند. اگر برنامه قبلاً از آن دسته از رجیسترها برای نگه داری داده های مهم استفاده می کرده است ، باید داده های موجود از این رجیسترها در پشته ذخیره شده و پس از اجرای دستورالعمل بازیابی شوند.

      مثال

      مثال زیر تعریف و استفاده از ماکرو را نشان می دهد.

      مثال : 

      هنگامی که کد فوق کامپایل و اجرا شد ، نتیجه زیر را ایجاد می کند.

      مثال : 

      کلام پایانی

      در ابن بخش از  آموزش زبان اسمبلی (Assembly) به بررسی ماکروها در زبان اسمبلی (Assembly) پرداختیم. در بخش بعدی مدیریت فایل راخواهیم داشت. با ما همراه باشید.

      QR:  جلسه ۱۹ : ماکروها در زبان اسمبلی (Assembly)
      به اشتراک بگذارید