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



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

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

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

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

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

      رویه ها یا زیرروال ها در زبان اسمبلی بسیار مهم هستند ، زیرا برنامه های زبان اسمبلی تمایل دارند که در اندازه بزرگ باشند. رویه ها با یک نام مشخص می شوند. به دنبال این نام ، بدنه رویه تشریح شده است که کار مشخصی را انجام می دهد. پایان مراحل توسط عبارت بازگشتی نشان داده شده است.

      سینتکس

      در زیر سینتکس تعریف رویه آورده شده است.

      مثال

      مثال : 

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

      مثال : 

      called procedure با استفاده از دستورالعمل RET کنترل را به حالت فراخوانی باز می گرداند.

      مثال

      بگذارید یک روال بسیار ساده به نام sum بنویسیم که متغیرهای ذخیره شده در ثبات ECX و EDX را اضافه می کند و sum موجود در ثبات EAX را برمی گرداند.

      مثال : 

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

      مثال : 

      پشته (stack)

      پشته یا stack یکی از انواع داده‌ ساختارها است که از آن برای ذخیره و بازیابی داده ها استفاده می شود. پشته در طراحی و پیاده‌ سازی سیستم‌ های نرم‌ افزاری و سخت‌ افزاری، استفاده می شود. شیوه ی عملکرد stack بر اساس سیاست LIFO یعنی آخرین ورودی اولین خروجی، است. با دستورالعمل POP و Push اطلاعات در پشته قرار داده و برداشته مي شوند.

      زبان اسمبلی دو دستورالعمل برای عملیات پشته را ارائه می دهد: PUSH و POP. این دستورالعمل ها دارای سینتکس های زیر هستند.

       

      مثال : 

      واحد نوشتن و خواندن از پشته word است، يعني هر دفعه بايد دو بايت را push يا pop نماييم. ثبات (SP (Stack pointer همیشه به بالاترين كلمه ی وارد شده در پشته اشاره می كند و در اول كار مقدار آن n است كه همان تعداد بايت های پشته است.

      اجرای پشته دارای خصوصیات زیر است.

      • فقط word ها یا doubleword ها می توانند در پشته ذخیره شوند ، نه یک بایت.
      • شیوه ی عملکرد Stack بر اساس سیاست LIFO یعنی آخرین ورودی اولین خروجی، می باشد.

      همانطور که ما در مورد ذخیره مقادیر ثبات ها در پشته قبل از استفاده از آن ها برای برخی از موارد بحث کردیم. می تواند به روش زیر انجام شود.

       

      مثال : 

      مثال

      برنامه زیر کل کاراکترهای ASCII را نمایش می دهد. برنامه اصلی روندی به نام display را فراخوانی می کند که مجموعه کاراکترهای ASCII را نشان می دهد.

      مثال : 

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

      کلام پایانی

      رویه ها در زبان اسمبلی (Assembly) را در این بخش مورد بررسی قرار دادیم. در بخش بعدی بازگشت پذيري (recursion) را دنبال می کنیم. با آموزش زبان اسمبلی (Assembly) همراه باشید.

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