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



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

جلسه ۰۱ : مقدمه – زبان اسمبلی (Assembly)

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

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

      زبان اسمبلی (Assembly) چیست؟

      با معرفی زبان اسمبلی (Assembly) ، می خواهیم بدانیم که زبان اسمبلی (Assembly) چیست؟

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

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

      یک پردازنده فقط دستورالعمل های زبان ماشین را درک می کند ، که رشته های ۱ و ۰ هستند. با این حال ، زبان ماشین برای استفاده در توسعه نرم افزار بسیار مبهم و پیچیده است. بنابراین ، زبان اسمبلی سطح پایین برای یک خانواده خاص از پردازنده ها طراحی شده است که دستورالعمل های مختلفی را با کد نمادین و فرم قابل فهم تر نشان می دهد.

      در ادامه ی مبحث معرفی زبان اسمبلی (Assembly) و زبان اسمبلی (Assembly) چیست؟ به مزایای زبان اسمبلی می پردازیم.

      مزایای زبان اسمبلی

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

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

       

      از دیگر مزایای استفاده از زبان اسمبلی

      • به حافظه و زمان اجرای کم تر احتیاج دارد.
      • انجام کارهای پیچیده و خاص را بر روی سخت افزار به روشی آسان تر امکان پذیر می کند.
      • مناسب برای کارهایی است که به زمان کم تری نیاز دارند مناسب است.
      • برای نوشتن برنامه های (ISR (interrupt service routines و سایر برنامه هایی که در حافظه قرار می گیرند، مناسب ترین است.

      ویژگی های اصلی سخت افزار کامپیوتر

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

      واحد اساسی ذخیره سازی کامپیوتر Bit است. Bit می تواند (ON (1 یا (OFF (0 باشد و یک گروه نه بیتی مرتبط به هم بایت را تشکیل می دهد که ۸ بیت آن برای داده ها، و بیت آخر هم برای توازن مورد استفاده قرار می گیرد.

      بنابراین بیت توازن برای فرد کردن تعداد اعداد یک بایت استفاده می شود. اگر بیت توازن زوج باشد ، سیستم فرض می کند که یک خطای توازن (هر چند این رخداد نادر است) رخ داده است ، که ممکن است به دلیل خطای سخت افزار یا اختلال الکتریکی ایجاد شده باشد.

      پردازنده از اندازه داده های زیر پشتیبانی می کند.

      کلمه (Word): یک آیتم ۲ بایتی
      دو کلمه – Doubleword: یک آیتم ۴ بایتی (۳۲ بیتی)
      چهار کلمه – Quadword: یک آیتم ۸ بایتی (۶۴ بیتی)
      پاراگراف (Paragraph): یک ناحیه ۱۶ بایتی (۱۲۸ بیتی)
      Kilobyte – کیلوبایت: ۱۰۲۴ بایت
      Megabyte – مگابایت: ۱،۰۴۸،۵۷۶ بایت

      سیستم اعداد دودویی

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

      جدول زیر ازرش مکانی برای یک عدد باینری ۸ بیتی را نشان می دهد ، که همه بیت ها ON هستند.

      مقدار بیت۱۱۱۱۱۱۱۱
      ارزش مکانی۱۲۸۶۴۳۲۱۶۸۴۲۱
      شماره بیت۷۶۵۴۳۲۱۰

      مقدار یک عدد باینری بر اساس وجود ۱ بیت و ارزش مکانی آن هاست. بنابراین ، مقدار عدد باینری داده شده برابر است با:

      ۱ + ۲ + ۴ + ۸ +۱۶ + ۳۲ + ۶۴ + ۱۲۸ = ۲۵۵

      که همان ۲۸ – ۱ است.

      سیستم اعداد هگزادسیمال

      سیستم اعداد هگزادسیمال از پایه ۱۶ استفاده می کند. ارقام موجود در این سیستم از ۰ تا ۱۵ متغیر است. طبق قرارداد ، از حروف A تا F برای نشان دادن اعداد ۱۰ تا ۱۵ استفاده می شود.

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

      عدد دهدهینمایش Binaryنمایش هگزادسیمال
      ۰۰۰
      ۱۱۱
      ۲۱۰۲
      ۳۱۱۳
      ۴۱۰۰۴
      ۵۱۰۱۵
      ۶۱۱۰۶
      ۷۱۱۱۷
      ۸۱۰۰۰۸
      ۹۱۰۰۱۹
      ۱۰۱۰۱۰A
      ۱۱۱۰۱۱B
      ۱۲۱۱۰۰C
      ۱۳۱۱۰۱D
      ۱۴۱۱۱۰E
      ۱۵۱۱۱۱F

      برای تبدیل یک عدد باینری به معادل هگزا دسیمال آن ، هر کدام را به ۴ گروه متوالی تقسیم کنید ، از سمت راست شروع کنید و معادل هگزادسیمال آن گروه ها را بنویسید.

      مثال – عدد دودویی ۰۰۰۱ ۱۱۰۱ ۱۱۰۰ ۱۰۰۰ معادل هگزادسیمال ۸CD1 است.

      برای تبدیل یک عدد هگزادسیمال به معادل دودویی ، کافیست هر رقم هگزادسیمال را به معادل دودویی ۴ رقمی آن بنویسید.

      مثال – هگزادسیمال FAD8 به معادل دودویی ۱۰۰۰ ۱۱۰۱ ۱۰۱۰ ۱۱۱۱ است.

      با معرفی زبان اسمبلی (Assembly) همراه هستیم.

      محاسبات باینری

      جدول زیر چهار قانون ساده برای جمع کردن باینری را نشان می دهد.

      (i)(ii)(iii)(iv)
      ۱
      ۰۱۱۱
      =۱۰=۱۱

      قوانین (iii) و (IV) جا به جایی ۱ بیت را به سمت چپ را نشان می دهد.

      مثال

      دهدهیباینری
      ۶۰۰۰۱۱۱۱۰۰
      +۴۲۰۰۱۰۱۰۱۰
      ۱۰۲۰۱۱۰۰۱۱۰

      مقدار دودویی منفی در نماد مکمل دو بیان شده است. طبق این قانون ، تبدیل یک عدد باینری به مقدار منفی آن ، مقادیر بیت آن را بر عکس کرده و مقدار ۱ را به آن اضافه کنید.

      مثال

      عدد ۵۳۰۰۱۱۰۱۰۱
      معکوس۱۱۰۰۱۰۱۰
      اضافه کردن ۱۰۰۰۰۰۰۰۱
      عدد ۵۳-۱۱۰۰۱۰۱۱

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

      مثال

      تفریق ۴۲ از ۵۳

      عدد ۵۳۰۰۱۱۰۱۰۱
      عدد ۴۲۰۰۱۰۱۰۱۰
       معکوس بیت عدد ۴۲۱۱۰۱۰۱۰۱
      اضافه کردن ۱۰۰۰۰۰۰۰۱
      عدد ۴۲-۱۱۰۱۰۱۱۰
      ۵۳ – ۴۲ = ۱۱۰۰۰۰۱۰۱۱

      سرریز آخرین بیت ۱ از بین رفته است.

      معرفی زبان اسمبلی (Assembly) را با مبحث آدرس دهی داده ها در حافظه ادامه می دهیم.

      آدرس دهی داده ها در حافظه

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

      • دریافت دستورالعمل از حافظه
      • رمزگشایی یا شناسایی دستورالعمل
      • اجرای دستورالعمل

      پردازنده ممکن است به یک یا چند بایت از حافظه به طور همزمان دسترسی داشته باشد. بگذارید عدد هگزادسیمال ۰۷۲۵H را در نظر بگیریم. این عدد به دو بایت حافظه نیاز دارد. بایت مرتبه بالاتر ۰۷ است و بایت کم پایین تر ۲۵ است.

      پردازنده داده ها را در دنباله ای با بایت معکوس ذخیره می کند ، یعنی یک بایت با مرتبه پایین در یک آدرس حافظه پایین و یک بایت مرتبه بالاتر در آدرس حافظه بالا ذخیره می شود. بنابراین ، اگر پردازنده مقدار ۰۷۲۵H را از ثبات به حافظه بیاورد ، ابتدا ۲۵ را به آدرس حافظه پایین و ۰۷ را به آدرس حافظه بعدی منتقل می کند.

       

      زبان اسمبلی (Assembly) چیست؟ - معرفی زبان اسمبلی (Assembly)

      زبان اسمبلی (Assembly) چیست؟ – معرفی زبان اسمبلی (Assembly)

       

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

      • آدرس مطلق – یک مرجع مستقیم از مکان خاص.
      • آدرس segment (یا offset) – شروع آدرس یک بخش حافظه با مقدار افست.

      مبحث معرفی زبان اسمبلی (Assembly) و زبان اسمبلی (Assembly) چیست؟ در این جا را به پایان می رسانیم.

      کلام پایانی

      در این بخش به معرفی بررسی زبان اسمبلی (Assembly) و این که اصلا زبان اسمبلی (Assembly) چیست؟ پرداختیم. در ادامه ی معرفی زبان اسمبلی (Assembly) به نصب محیط برنامه نویسی اسمبلی خواهیم پرداخت.

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