همراهان عزیز وب سایت آموزشی پی وی لرن وقتتون بخیر و شادی، با آموزش زبان برنامه نویسی اسمبلی (Assembly) در خدمتتون خواهیم بود. زبان اسمبلی (Assembly) چیست؟ در این بخش به معرفی زبان اسمبلی (Assembly) می پردازیم. با ما همراه باشید.
با معرفی زبان اسمبلی (Assembly) ، می خواهیم بدانیم که زبان اسمبلی (Assembly) چیست؟
هر رایانه شخصی دارای یک ریز پردازنده است که فعالیت های ریاضی، منطقی و کنترل رایانه را مدیریت می کند.
هر خانواده از پردازنده ها مجموعه دستورالعمل های خاص خود را برای انجام عملیات مختلف از جمله دریافت ورودی از صفحه کلید ، نمایش اطلاعات بر روی صفحه نمایش و انجام کارهای مختلف دیگر دارند. این مجموعه دستورالعمل ها “دستورالعمل زبان ماشین” نامیده می شوند.
یک پردازنده فقط دستورالعمل های زبان ماشین را درک می کند ، که رشته های ۱ و ۰ هستند. با این حال ، زبان ماشین برای استفاده در توسعه نرم افزار بسیار مبهم و پیچیده است. بنابراین ، زبان اسمبلی سطح پایین برای یک خانواده خاص از پردازنده ها طراحی شده است که دستورالعمل های مختلفی را با کد نمادین و فرم قابل فهم تر نشان می دهد.
در ادامه ی مبحث معرفی زبان اسمبلی (Assembly) و زبان اسمبلی (Assembly) چیست؟ به مزایای زبان اسمبلی می پردازیم.
درک زبان اسمبلی باعث می شود فرد در مورد موضوعات زیر نیز آگاه شود.
سخت افزار اصلی اصلی رایانه متشکل از پردازنده ، حافظه و رجیسترها است. رجیسترها اجزای پردازنده ای هستند که داده ها و آدرس را در اختیار دارند. برای اجرای یک برنامه ، سیستم آن را از دستگاه خارجی به حافظه داخلی کپی می کند. سپس پردازنده دستورالعمل های برنامه را اجرا می کند.
واحد اساسی ذخیره سازی کامپیوتر 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) چیست؟ پرداختیم. در ادامه ی معرفی زبان اسمبلی (Assembly) به نصب محیط برنامه نویسی اسمبلی خواهیم پرداخت.