درس آموزش ریزپردازنده و اسمبلی

راهنمای خرید

بر روی کلید قرمز رنگ «اطلاعات بیشتر» کلیک کنید و سپس خرید خود را به صورت نقدی یا اقساطی از فروشگاه مورد نظرتان تکمیل کنید.

احتمالاً تا حالا نام «ریزپردازنده» (Microprocessor) را بارها شنیده‌اید. اصطلاح “micro” به معنای بسیار کوچک و “processor” به معنای چیزی است که کارها را تسریع می‌کند؛ بنابراین در مفهوم کلی…
ارسال سریع
پرداخت در محل
پرداخت آنلاین
تخفیف ویژه
بازگشت محصول
گارانتی

احتمالاً تا حالا نام «ریزپردازنده» (Microprocessor) را بارها شنیده‌اید. اصطلاح “micro” به معنای بسیار کوچک و “processor” به معنای چیزی است که کارها را تسریع می‌کند؛ بنابراین در مفهوم کلی اصطلاح ” Microprocessor” به معنای چیز بسیار کوچکی است که می‌تواند وظایف مختلف را طبق دستور سرعت دهد؛ اما تعریف واقعی ریزپردازنده کمی متفاوت از این خواهد بود. در ریزپردازنده یک تراشه الکترونیکی کوچک حاوی ترانزیستور است که در واحد پردازش مرکزی کامپیوتر (CPU) و سایر دستگاه‌های الکترونیکی یافت می‌شود. عملکرد اصلی آن گرفتن ورودی، پردازش و سپس ارائه خروجی مناسب است. دوره آموزش ریزپردازنده و اسمبلی با هدف آموزش این درس مهم از رشته مهندسی کامپیوتر ارائه شده و این ترند مخصوصاً در حوزه معماری کامپیوتر و سخت‌افزار بسیار حائز اهمیت است.

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

معرفی دوره آموزش ریزپردازنده و اسمبلی

دوره آموزش رایگان ریزپردازنده و اسمبلی در 23 جلسه و 33 ساعت آموزشی هم‌اکنون در اختیار کاربران عزیز مکتب خونه قرار دارد. این دوره مربوط به درس ریزپردازنده و اسمبلی بوده و از کلاس دکتر اسماعیل ثنایی ضبط شده است. در این درس استاد به مباحث مهم و پیشرفته‌ای از ریزپردازنده و اسمبلی خواهد پرداخت.

مباحث دوره آموزش ریزپردازنده و اسمبلی

این درس از دو قسمت اصلی تشکیل می‌شود:

  • در قسمت اول هدف آشنایی با میکروپروسسورهای خانواده‌ی x86 است. در این بخش نرم‌افزار، سخت‌افزار و ارتباط آن‌ها با یکدیگر با بررسی نسل اول این خانواده، یعنی 8086/8، هم بر مبنای Single board CPU و هم PC آموزش داده می‌شود.
  • در قسمت دوم به ساختار پردازنده‌های پیشرفته، از دهه‌ی ۹۰ به بعد، پرداخته می‌شود. همچنین جدیدترین تکنولوژی‌های Intel و AMD مورد بررسی قرار می‌گیرند.

هدف از برگزاری دوره آموزش ریزپردازنده و اسمبلی چیست؟

هدف اصلی این درس ایجاد دید مهندسی لازم برای انجام پروژه‌های مربوط به سیستم‌های دیجیتال هم به‌صورت Single board و هم به‌صورت سیستمی بر روی PC است. در نهایت دانشجویان قادر خواهند بود که در هنگام مواجهه با یک پروژه، قدم‌های اصلی، ملاحظات، محدودیت‌ها و راه‌حل‌ها را ارائه، تحلیل و بررسی کنند و بهترین راه‌حل را برگزینند.

دوره آموزش رایگان ریزپردازنده و اسمبلی برای چه کسانی مناسب است؟

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

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

منابع و مراجع درس ریزپردازنده و اسمبلی

  • Douglas v. Hall, Microprocessor interfacing and its application.
  •  Mazidi, 80X86 IBM PC and Compatible Computers: Assembly Language,
    Design, and Interfacing
  •  INTEL Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium,
  • Pentium Pro Processor, Pentium II, III, 4 (7th Edition) by Barry B. Brey
  • William Stallings Computer Organization and Architecture: Designing for
  • Performance 8th Ed. Prentice Hall, 2009
  •  S. K Sen, Understanding 8085/8086 Microprocessor and Peripheral ICs, 2009

تاریخچه مختصری از ریزپردازنده

مهم‌ترین اختراع تکنولوژیکی در زمان‌های اخیر ریزپردازنده است. پیشرفت در فناوری مدارهای مجتمع این امکان را برای مهندسان شرکت اینتل آمریکا فراهم کرد تا در سال 1971 یک کامپیوتر قابل‌برنامه‌ریزی میکرو بر روی یک تراشه توسعه دهند. این دستگاه (“Intel 4004”) از حدود 2300 ترانزیستور تشکیل شده بود. تراشه‌ای که با استفاده از فناوری MOS کانال P-gate سیلیکونی ساخته شده است. بعدها این تراشه به‌عنوان ریزپردازنده نام‌گذاری شد.

ریزپردازنده‌ها معمولاً از سیلیکون ساخته می‌شوند و اغلب «تراشه‌ منطقی» یا «پردازنده‌» نامیده می‌شوند. خانواده ریزپردازنده نسل اول 8 بیتی بود؛ اما امروزه ما از هر دو ریزپردازنده 32 بیتی و 64 بیتی استفاده می‌شود. در 44 سال گذشته تعداد ترانزیستورهای مورد استفاده در ریزپردازنده‌ها به‌شدت افزایش یافته است. اکنون ریزپردازنده‌هایی داریم که بیش از شش میلیون ترانزیستور دارند.

نحوه کار ریزپردازنده چگونه است؟

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

از زمانی که کامپیوتر روشن می‌شود تا زمانی که خاموش می‌شود، ریزپردازنده میلیون‌ها عملیات منطقی و حسابی را انجام خواهد داد. این عملیات از تعداد کمی از فضاهای نگهداری به نام ثبات استفاده می‌کند. عملیات حسابی معمولی شامل جمع، تفریق و مقایسه دو یا چند مقدار است. برای انجام عملیات، ریزپردازنده باید دستورالعمل‌های خاصی را دریافت کند. هنگامی‌که یک کامپیوتر راه‌اندازی می‌شود، ریزپردازنده اولین مجموعه دستورات خود را از سیستم اصلی ورودی-خروجی دریافت می‌کند. سرعت ریزپردازنده با مگاهرتز (M-Hz) یا گیگاهرتز اندازه‌گیری می‌شود. در دوره آموزش ریزپردازنده و اسمبلی نحوه کار ریزپردازنده‌ها به‌صورت کامل تشریح شده است.

طبقه‌بندی ریزپردازنده‌ها

اولین ریزپردازنده 4 بیتی بود. سپس ریزپردازنده‌های 8 بیتی، 16 بیتی، 32 بیتی و در نهایت 64 بیتی را به‌تدریج با گذشت زمان و با پیشرفت فناوری مدرن به وجود آمدند. ما می‌توانیم آن را به روش‌های مختلفی طبقه‌بندی کنیم، اما رایج‌ترین و متداول‌ترین آن‌ها، ریزپردازنده‌ها به دو دسته طبقه‌بندی می‌شوند که عبارت‌اند از:

با توجه به قابلیت کار:

1. ریزپردازنده‌های اختصاصی یا میکروکنترلر

2. ریزپردازنده‌های عمومی

3. پردازنده‌های بیت اسلایس

با توجه به خصوصیات:

1· پردازنده‌های RISC

2· پردازنده‌های CISC

3· پردازنده‌های ویژه

ریزپردازنده یا میکروکنترلر اختصاصی

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

 میکروکنترلرها بیشتر برای کاربردهای تعبیه شده طراحی شده‌اند و به‌شدت در دستگاه‌های الکترونیکی با کنترل خودکار مانند تلفن‌های همراه، دوربین‌ها، اجاق‌های مایکروویو، ماشین‌های لباسشویی و غیره استفاده می‌شوند. آن‌ها معمولاً 4 بیتی هستند و برای مصرف انرژی کم طراحی شده‌اند. این نوع از ریزپردازنده‌ها با نام مدارهای مجتمع خاص برنامه (Application specific integrated circuits) یا نیز شناخته می‌شوند.

ریزپردازنده‌های عمومی (GPM)

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

پردازنده‌های بیت اسلایس

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

چند اصطلاح رایج در مورد ریزپردازنده‌ها

هرچند که در دوره آموزش ریزپردازنده و اسمبلی با همه اصطلاحات مربوط به دنیای اسمبلی و ریزپردازنده آشنا خواهیم شد ولی ذکر آن‌ها در این بخش از توضیحات هم خالی از لطف نیست.

واحد حسابی/منطقی (ALU)

ALU محاسبات یا پردازش واقعی داده‌ها را انجام می‌دهد. ALU ماشین‌حساب کامپیوتر است. توابع ALU عبارت‌اند از:

  • عملیات حسابی (جمع، تفریق، ضرب و تقسیم)
  • عملیات منطقی (OR، AND، NOT و غیره)
  • تصمیم‌گیری (قابلیت مقایسه دو یا چند عدد یا داده)

واحد کنترل

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

رجیستر

رجیسترها (Registers) مکان‌های حافظه ویژه‌ای برای ذخیره‌سازی اطلاعات موقت هستند، رجیسترها تقریباً شبیه حافظه چرک‌نویس (scratchpad). هر ثبات از بیش از یک فلیپ فلاپ ساخته شده است. ALU از داده‌های ذخیره شده در ثبات‌ها استفاده می‌کند. انواع مختلفی از رجیسترها استفاده می‌شود. در میان آن‌ها، (accumulator register) «رجیستر تجمع‌کننده» و (memory address register) «رجیستر آدرس حافظه» یا فقط (address register) «رجیستر آدرس» و (instruction register) «رجیستر دستورالعمل» معروف‌ترین هستند.

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

واحد باس Bus unit

«واحد باس» (Bus unit) اطلاعات دیجیتال را در سراسر تراشه و کامپیوتر حمل می‌کنند و حافظه محلی از محاسبات روی تراشه پشتیبانی می‌کند. بسیاری از اتصالات باس مانند گذرگاه آدرس، گذرگاه کنترل، گذرگاه حافظه گذرگاه داده و غیره وجود دارد. ریزپردازنده‌های پیچیده‌تر اغلب شامل بخش‌های دیگری مانند بخش‌هایی از حافظه تخصصی، به نام حافظه پنهان، برای سرعت بخشیدن به دسترسی به دستگاه‌های ذخیره‌سازی اطلاعات خارجی هستند.

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

اجرای دستورالعمل

«دستورالعمل» (Instruction) اطلاعات یا روشی است که با آن می‌توان کار موردنیاز را انجام داد. دستورالعمل‌های ریزپردازنده در حافظه باید به شکل قابل‌خواندن ماشین باشد. این دستورالعمل از دو بخش تشکیل شده است. اولین مورد «یک کد عملیات» و «یک یا چند عملوند» خواهد بود. این معمولاً به‌عنوان فرمت دستورالعمل شناخته می‌شود.

اجرای دستورالعمل یکی از وظایف اصلی ریزپردازنده است. دستورالعمل‌ها یکی پس از دیگری اجرا می‌شوند. اجرای دستور معمولاً توسط دو چرخه انجام می‌شود و آن‌ها عبارت‌اند از;

  • چرخه واکشی (Fetch cycle)
  • چرخه اجرا (Execute cycle)

چرخه واکشی

در ابتدای اجرای دستورالعمل، واحد پردازش مرکزی (CPU) برخی از داده‌ها و دستورالعمل‌ها (برنامه) را از حافظه اصلی خود واکشی می‌کند و آن‌ها را در مناطق حافظه موقت داخلی خود به نام «رجیستر» ذخیره می‌کند. فرآیند واکشی داده‌ها و دستورالعمل‌ها از طریق مسیری به نام باس امکان‌پذیر است.

 پس از آن، CPU دستورالعملی را که به تازگی واکشی کرده است، ارزیابی کرده یا آن را معنا می‌کند. به این فرآیند «رمزگشایی» (دیکد | Decode) می‌گویند. CPU تمام دستورالعمل‌ها را رمزگشایی کرده و مناطق درون ریزپردازنده را برای مرحله بعدی آماده می‌کند. کل فرآیند یا چرخه به‌عنوان چرخه واکشی شناخته می‌شود.

چرخه اجرا

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

زبان برنامه‌نویسی اسمبلی

موضوع مهم دیگری که در دوره آموزش ریزپردازنده و اسمبلی مورد بحث قرار خواهد گرفت، زبان برنامه‌نویسی اسمبلی خواهد بود. برنامه‌نویسی به زبان اسمبلی عبارت است از نوشتن دستورالعمل‌های ماشین به شکل «مونومون» (دستورالعمل کمک‌کننده به حافظه | mnemonic)، با استفاده از اسمبلر برای تبدیل این مونومون ها به دستورالعمل‌های واقعی پردازنده و داده‌های مرتبط.

زبان اسمبلی یک زبان برنامه‌نویسی سطح پایین برای ریزپردازنده‌های قدیمی و سایر دستگاه‌های قابل‌برنامه‌ریزی است. نوشتن به زبان ماشین واقعاً سخت بود و از این رو زبان اسمبلی به وجود آمد. این نوع زبان برنامه‌نویسی به برنامه‌نویسان آن زمان کمک می‌کرد تا کارآمدتر و راحت‌تر برنامه‌نویسی کنند. این زبان نیاز به اسمبلر یا برنامه مترجم دارد که برای تبدیل حافظه‌ها و عملوندها به زبان ماشین استفاده می‌شود. بیشتر مردم این زبان را به‌عنوان زبان اسمبلی avr می‌شناسند ولی با این حال این زبان برای اغلب میکروکنترلرها و ریزپردازنده‌ها به کار گرفته می‌شود.

ویژگی‌های برنامه‌نویسی اسمبلی

زبان اسمبلی ابتدایی‌ترین زبان برنامه‌نویسی موجود برای هر پردازنده است. زبان‌های اسمبلی معمولاً فاقد امکانات سطح بالا مانند متغیرها و توابع هستند. این زبان ساختارها و مجموعه‌ای از دستورات مشابه زبان ماشین را دارد، اما به برنامه‌نویس اجازه می‌دهد تا از نام‌ها به جای اعداد استفاده کند. این زبان هنوز برای برنامه‌نویسان در مواقعی که سرعت لازم است یا زمانی که نیاز به انجام عملیاتی دارند که در زبان‌های سطح بالا امکان‌پذیر نیست، بسیار مفید خواهد بود.

برخی از ویژگی‌های مهم برنامه‌نویسی به زبان اسمبلی در زیر آورده شده است:

  • به برنامه‌نویس اجازه می‌دهد تا هنگام نوشتن برنامه‌های کد منبع، مانند «ADD» (افزودن)، «SUB» (تفریق)، JMP (پرش) و غیره از حافظه‌های یادداشت استفاده کند.
  • متغیرها با نامهای نمادین نشان داده می‌شوند، نه به‌عنوان مک آن‌های حافظه، مانند MOV A، در اینجا “A” متغیر است.
  • بررسی خطا
  • تغییرات را می‌توان به سرعت و به‌راحتی با یک مونتاژ مجدد ترکیب کرد،
  • کمک‌های برنامه‌نویسی برای جابجایی و ارزیابی بیان گنجانده شده است.

مزایای برنامه‌نویسی به زبان اسمبلی

برخی از مزایای زبان اسمبلی به صورت موارد زیر است:

  • آسان برای درک و استفاده
  • پیدا کردن و تصحیح خطاها آسان است
  • آسان برای اصلاح
  • کارآمدتر از برنامه‌نویسی به زبان ماشین

معایب برنامه‌نویسی به زبان اسمبلی

برخی از معایب زبان اسمبلی به صورت موارد زیر است:

  • برنامه‌نویس به دانش معماری پردازنده و مجموعه دستورات نیاز دارد.
  • کدگذاری زبان ماشین
  • دستورالعمل‌های زیادی برای دستیابی به کارهای کوچک موردنیاز است
  • برنامه‌های منبع معمولاً بزرگ هستند و دنبال کردن آن‌ها دشوار است.

مجموعه دستورالعمل‌های زبان اسمبلی

مجموعه دستورالعمل‌های زبان اسمبلی در ریزپردازنده اینتل 8085 با توجه به برنامه‌نویسی زبان اسمبلی به‌صورت فهرست موارد زیر است:

  • ADD r: اضافه کردن
  • ADD M: اضافه کردن به حافظه
  • ADC r: افزودن با حمل
  • ADC M: افزودن با حمل به حافظه
  • LDI: این دستورالعمل مخفف load immediate بوده و به معنای قرار دادن مقداری مشخصی در یک ثبات خاص است.
  • LDA a: بارگیری مستقیم آکومولاتور
  • SLA: به معنای جابجایی محتویات رجیستر یک مکان به سمت چپ است.
  • MOV: به معنای انتقال داده‌ها از یک مکان به مکان موردنظر است.
  • MOV M A: -به معنای انتقال نتیجه از حافظه به ثبت A است.
  • STA: ذخیره در رجیستر
  • STA a: ذخیره به انباشته
  • JMP: پرش به‌جایی
  • SUB r: تفریق
  • SUB M: کم کردن از حافظه
  • و صدها دستور دیگر

سخن پایانی

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

دکتر اسماعیل ثنائی عضو هیأت علمی دانشکده برق دانشگاه صنعتی شریف از سال ۱۳۶۵ می‌باشند. زمینه‌ی فعالیت ایشان الکترونیک دیجیتال است.

نقد و بررسی‌ها

هنوز بررسی‌ای ثبت نشده است.

اولین کسی باشید که دیدگاهی می نویسد “درس آموزش ریزپردازنده و اسمبلی”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیشنهادها
پیشنهاد خریداران دیگر