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



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

جلسه ۱۰-۰۲ : دستورالعمل های محاسباتی در زبان اسمبلی (Assembly)

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

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

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

      دستورالعمل DIV / IDIV

      عملیات تقسیم دو بخش ایجاد می کند – یک مقدار مثبت و باقیمانده. در مورد ضرب ، سرریز اتفاق نمی افتد زیرا از ثبات های double-length برای نگه داری نتیجه استفاده می شود. اما در مورد تقسیم ، ممکن است سرریز اتفاق بیفتد. در صورت بروز سرریز ، پردازنده ایجاد وقفه می کند.

      دستورالعمل (DIV (Divide برای داده های بدون علامت استفاده می شود و از (IDIV (Integer Divide برای داده های علامت دار استفاده می شود.

      سینتکس

      قالب برای انجام دستورالعمل DIV / IDIV به شکل زیر است.

      مثال : 

      مقسوم در accumulator است. هر دو دستورالعمل می توانند با عملگرهای ۸ بیتی ، ۱۶ بیتی یا ۳۲ بیتی کار کنند. این عملیات روی هر شش وضعیت flag ها تأثیر می گذارد. در بخش زیر سه مورد تقسیم با اندازه متفاوت عملوند توضیح داده شده است.

       

      ردیفسناریوها
      ۱وقتی عملوند ۱ بایت (۸ بيتی) است.

      فرض شده است که مقسوم در ثبات (۱۶ بیتی) AX است. ثبات AX بر عملوند تقسيم می شود. پس از تقسیم ، خارج قسمت به ثبت AL می رود و باقیمانده به ثبات AH می روند.

      Arithmetic4

      ۲وقتی عملوند ۱ کلمه است.

      فرض بر این است که مقسوم  ۳۲ بیت طول دارد و در ثبات های DX: AX وجود دارد. ۱۶ مرتبه بالا مرتب در DX و ۱۶ بیت با مرتبه پایین در AX قرار دارند. پس از تقسیم ، مقسوم  ۱۶ بیتی به ثبات AX می رود و باقیمانده ۱۶ بیتی به رجیستری DX می رود.

      Arithmetic5

      ۳هنگامی که عملووند دو کلمه باشد.

      فرض شده است که مقسوم  ۶۴ بیت طول دارد و در ثبات های EDX: EAX.

      ۳۲ بیت مرتبه بالا در EDX و ۳۲ بیت با مرتبه پایین در EAX قرار دارد. پس از تقسیم ، مقسوم  ۳۲ بیتی به رجیستری EAX می رود و باقیمانده ۳۲ بیتی به رجیستری EDX می رود.

      Arithmetic6

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

      مثال

      مثال زیر ۸ را بر ۲ تقسیم می کند. مقسوم ۸ در رجیستری ۱۶ بیتی AX ذخیره می شود و ۲ در ثبات ۸ بیتی BL ذخیره می شود.

      مثال : 

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

      مثال : 

      کلام پایانی

      دستورالعمل های محاسباتی در زبان اسمبلی را با بررسی دستورالعمل DIV / IDIV ادامه دادیم. در جلسه ی آینده مبحث دستورالعمل های منطقی را خواهیم داشت. با آموزش زبان اسمبلی (Assembly) همراه باشید.

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