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



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

جلسه ۰۵-۰۱ : ثبات ها در زبان اسمبلی (Assembly)

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

      همراهان عزیز وب سایت آموزشی پی وی لرن وقتتون بخیر و شادی، با آموزش زبان برنامه نویسی اسمبلی (Assembly) در خدمتتون خواهیم بود. ثبات ها در زبان اسمبلی (Assembly) را در دو جلسه مورد بررسی قرار خواهیم داد. در بخش اول به مواردی چون ثبات پردازنده، ثبات داده (Data Registers)، ثبات های اشاره گر (Pointer Registers) و ثبات ایندکس (Index Register) می پردازیم.

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

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

      برای سرعت بخشیدن به عملیات پردازنده ، پردازنده شامل برخی از مکان های ذخیره سازی داخلی به نام ثبات یا رجیستر می باشد.

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

      ثبات پردازنده

      ده معماری ۳۲ بیتی و شش پردازنده ۱۶ بیتی در معماری IA-32 وجود دارد. ثبات ها به سه دسته دسته بندی می شوند.

      • ثبت های عمومی (General Registers)
      • ثبت های کنترل (Control Registers)
      • ثبات های مربوط به سگمنت (Segment Registers)

      ثبات های عمومی به گروه های زیر تقسیم می شوند.

      • ثبت داده (Data Registers)
      • ثبات های اشاره گر (Pointer Registers)
      • ثبات های ایندکس (Index Registers)

      ثبات داده (Data Registers)

      چهار رجیستر داده ۳۲ بیتی برای عملیات محاسباتی، منطقی و سایر موارد استفاده می شود. این رجیسترهای ۳۲ بیتی به سه روش قابل استفاده هستند.

      • به عنوان ثبات ۳۲ بیتی کامل EAX، EBX، ECX، EDX.
      • بخش کم ارزش از رجیسترهای ۳۲ بیتی می توانند به عنوان چهار رجیستر داده ۱۶ بیتی استفاده شوند: AX، BX، CX و DX.

      بخش کم ارزش و پر ارزش از چهار ثبات ۱۶ بیتی فوق الذکر می تواند به عنوان هشت ثبات داده ۸ بیتی استفاده شود: AH ، AL ، BH ، BL ، CH ، CL ، DH و DL.

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

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

      برخی از این رجیسترها در عملیات محاسباتی کاربرد خاصی دارند.

      ثبات AX انباشتگر اصلی (primary accumulator) است. از آن در ورودی / خروجی و بیش تر دستورالعمل های محاسباتی استفاده می شود. به عنوان مثال ، در عملیات ضرب ، یک عملوند با استفاده از رجیستر EAX یا AX یا AL با توجه به اندازه عملوند ذخیره می شود.

      ثبات BX به عنوان ثبات پایه (Base Register) شناخته می شود ، زیرا می تواند در آدرس دهی های فهرستی استفاده شود.

      ثبات CX به عنوانثبات شمارنده (Count Register) شناخته می شود ، زیرا ثبات های ECX ، CX تعداد تکرار حلقه ها را در عملیات های تکراری ذخیره می کنند.

      ثبات DX به عنوان ثبات داده (Data Register) شناخته می شود. در عملیات ورودی / خروجی استفاده می شود. همچنین با استفاده از ثبات AX به همراه DX برای عملیات ضرب و تقسیم مقادیر بزرگ استفاده می شود.

      ثبات های اشاره گر (Pointer Registers)

      رجیسترهای اشاره گر شامل ثبات های ۳۲ بیتی EIP ، ESP و EBP و ۱۶ بیتی SP، IP و BP می باشند. سه دسته از اشاره گرها وجود دارد.

      • اشاره گر دستورالعمل (Instruction Pointer (IP – ثبات ۱۶ بیتی IP آدرس افست دستورالعمل بعدی را که باید اجرا شود ، ذخیره می کند. اجتماع IP با ثبات CS (به عنوان CS: IP) آدرس کاملی از دستورالعمل فعلی را در سگمنت کد به ما می دهد.
      • اشاره گر پشته یا (Stack Pointer (SP – ثبات ۱۶ بیتی SP مقدار افست موجود در پشته برنامه را فراهم می کند. اجتماع SP و SS به شکل (SS: SP) به موقعیت فعلی داده یا آدرس در پشته برنامه اشاره دارد.
      • اشاره گر پایه (Base Pointer (BP – ثبات ۱۶ بیتی BP به طور عمده در ارجاع متغیرهای پارامتری منتقل شده به زیر مجموعه ها، کمک می کند. آدرس در رجیستری SS با offset در BP برای به دست آوردن محل پارامتر ترکیب می شود. BP همچنین می تواند با DI و SI به عنوان ثبات های پایه برای آدرس دهی های ویژه استفاده شود.

       

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

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

      ثبات ایندکس (Index Register)

      ثبات ایندکس ۳۲ بیتی ، ESI و EDI و بخش های راست ۱۶ بیتی SI و DI برای آدرس دهی ایندکس شده استفاده می شود و بعضی اوقات در جمع و تفریق استفاده می شود. دو مجموعه ثبات ایندکس (Index Register) وجود دارد.

      (Source Index (SI – از آن به عنوان شاخص مبدا برای عملیات روی رشته ها استفاده می شود.

      (Destination Index (DI – از آن به عنوان شاخص مقصد برای عملیات روی رشته ها استفاده می شود.

       

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

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

      کلام پایانی

      ثبات ها در زبان اسمبلی (Assembly) را مورد بررسی قرار دادیم. در بخش اول به مواردی چون ثبات پردازنده، ثبات داده (Data Registers)، ثبات های اشاره گر (Pointer Registers) و ثبات ایندکس (Index Register) پرداختیم. در جلسه ی آینده نیز مبحث ثبات ها در زبان اسمبلی را ادامه خواهیم داد. با آموزش زبان اسمبلی (Assembly) همراه باشید.

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