Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

‫آموزش مجازی‬

‫طراحی سیستمهای ریزپردازندهای‬


‫دانشگاه آزاد اسالمی واحد علوم و تحقیقات‬

‫استاد‪ :‬سیدمجید تیموری‬

‫جلسه دوم‬
‫‪1‬‬
‫بررسی ریزپردازنده ‪8086‬‬
‫• با توجه به اینکه ‪ 8086‬مبنای اصلی ریزپردازندههای اینتل بوده است‪ ،‬لذا این‬
‫ریزپردازنده مورد بررسی قرار میگیرد‪.‬‬

‫‪2‬‬
‫معماری داخلی ریزپردازنده ‪8086‬‬

‫• واحد اجرایی‬
‫شامل رجیسترهای عمومی و‬
‫رجیسترهای خاص‪ ،‬اپراتورها‪،‬‬
‫رجیستر پرچم و ‪ALU‬‬

‫• واحد ارتباط گذرگاه‬


‫شامل رجیسترهای سگمنت‪،‬‬
‫گذرگاه آدرس و صف‬
‫زمانیبندی دستورات‬

‫‪3‬‬
‫مفهوم معماری ‪ Pipeline‬در ریزپردازنده ‪8086‬‬
‫• معماری غیر خطلولهای‬
‫در این نوع معماری تا دستوری به طور کامل اجرا نشده باشد‪ ،‬دستور بعدی اجرا‬
‫نمیشود‪ .‬منظور از اجرای یک دستور مراحل برداشت دستور ‪ ،Fetch‬رمزگشایی از‬
‫دستور ‪ Decode‬و اجرای ‪ Execute‬آن است‪.‬‬
‫• معماری خطلولهای‬
‫در این نوع معماری‪ ،‬دستور اول که در حال اجراست‪ ،‬دستور دوم برداشت میشود‪.‬‬
‫افزایش سرعت از مزایای این معماری است‪.‬‬

‫‪4‬‬
‫آشنایی با رجیسترهای ریزپردازنده ‪8086‬‬

‫‪5‬‬
‫آشنایی با حافظه سگمنت‬
‫• تعریف سگمنت‪:‬‬

‫فضایی از حافظه ‪ RAM‬با دو مشخصه زیر‪:‬‬


‫‪ )1‬آدرس شروع بر ‪ 16‬بخشپذیر باشد‪.‬‬
‫‪ )2‬حداکثر ‪ 64kB‬فضا داشته باشد‪.‬‬
‫مثال‪:‬‬
‫‪5412 H‬‬
‫‪6500 H‬‬
‫‪89A0 H‬‬
‫سؤال‪ :‬اگر سگمنتی دارای ‪ 64KB‬حافظه بود‪ ،‬آخرین آدرس آن سگمنت چند‬
‫است؟‬

‫‪6‬‬
‫انواع سگمنت‬
‫• کد سگمنت )‪(CS‬‬

‫• دیتا سگمنت )‪(DS‬‬

‫• استک سگمنت )‪(SS‬‬

‫• اکسترا سگمنت )‪(ES‬‬

‫‪7‬‬
‫حافظه کد سگمنت‬
‫• برای اجرای یک برنامه‪ 8086 ،‬دستورالعمل (کد عمل و‬
‫عملوند) را از قطعه کد برمیدارد‪ .‬آدرس محل این قسمت‬
‫از قطعه کد با دو رجیستر ‪ CS‬و ‪ IP‬مشخص میشود که‬
‫به آن آدرس منطقی گفته میشود‪.‬‬

‫‪CS:IP‬‬ ‫آدرس منطقی‪:‬‬


‫‪4512:1700 H‬‬ ‫مثال ‪:‬‬

‫‪8‬‬
‫آدرس فیزیکی‬
‫• در آدرس منطقی به عدد اول سمت چپ‪ ،‬رجیستر سگمنت و به‬
‫عدد دوم سمت راست‪ ،‬آدرس تفاوت مکان میگوئیم‪.‬‬

‫• آدرس فیزیکی از سه مرحله زیر به دست میآید‪:‬‬


‫‪ )1‬با رجیستر سگمنت شروع کنید‪.‬‬
‫‪ )2‬محتوای رجیستر سگمنت را به سمت چپ شیفت دهید‪.‬‬
‫‪ )3‬عدد به دست آمده را با آدرس تفاوت مکان جمع کنید‪.‬‬

‫سوال‪ :‬آدرس فیزیکی در ‪ 8086‬پنج رقم هگزاست‪ .‬چرا؟‬

‫‪9‬‬
‫مثال ‪1‬‬
‫• اگر ‪ CS=2500‬و ‪ IP=95F3‬بیابید‪:‬‬
‫الف) آدرس منطقی‬
‫ب) آدرس تفاوت مکان‬
‫ج) آدرس فیزیکی‬
‫د) محدوده پایین قطعه کد‬
‫ه) محدوده باالی قطعه کد‬

‫‪10‬‬
1 ‫پاسخ مثال‬
CS:IP 2500:95F3 )‫الف‬
IP )‫ب‬
25000 + )‫ج‬
95F3
2E5F3

25000 + )‫ه‬ 25000 +)‫د‬


FFFF 0000
11
34FFF 25000
‫مثال ‪2‬‬
‫• اگر ‪ CS=3499 H‬و ‪ IP=2500 H‬بیابید‪:‬‬
‫الف) آدرس منطقی‬
‫ب) آدرس تفاوت مکان‬
‫ج) آدرس فیزیکی‬
‫د) محدوده پایین قطعه کد‬
‫ه) محدوده باالی قطعه کد‬

‫‪12‬‬
‫پاسخ مثال ‪2‬‬
‫‪CS:IP‬‬ ‫→‬ ‫الف) ‪3499:2500‬‬
‫ب) ‪IP‬‬
‫‪34990 +‬‬ ‫ج)‬
‫‪2500‬‬
‫‪36E90‬‬

‫ه) ‪34990 +‬‬ ‫‪34990 +‬‬ ‫د)‬


‫‪FFFF‬‬ ‫‪0000‬‬
‫‪4498F‬‬ ‫‪34990‬‬
‫‪13‬‬
‫قطعه داده‬
‫• در ریزپردازنده ‪ ،8086‬ناحیهای برای داده کنار گذاشته‬
‫شده است که قطعه داده خوانده میشود‪.‬‬
‫• همانند قطعه کد که با رجیسترهای ‪ CS‬و ‪ IP‬به عنوان‬
‫قطعه کد و تفاوت مکان مرتبط است‪ ،‬قطعه داده نیز‬
‫رجیستر ‪ DS‬و یک مقدار تفاوت مکان را به کار میبرد‪.‬‬

‫‪DS:offset address 2500:1400 H‬‬ ‫مثال‪:‬‬

‫‪14‬‬
‫قطعه اضافی (اکسترا سگمنت)‬
‫• ‪ ES‬قطعه ای است که با نام قطعه اضافی مورد استفاده‬
‫قرار میگیرد‪ .‬گرچه در بسیاری از برنامههای معمولی این‬
‫قطعه به کار نرفته است‪ ،‬ولی استفاده از آن برای عملیات‬
‫رشتهای اساسی است‪.‬‬

‫‪15‬‬
‫نقشه حافظه در کامپیوترهای ‪IBM‬‬

‫‪16‬‬
‫محاسبه ظرفیت حافظه ‪ RAM‬در کامپیوترهای ‪IBM‬‬

‫‪9FFFF -‬‬ ‫(آدرس پایان)‬


‫‪00000‬‬ ‫(آدرس شروع)‬
‫‪9FFFF +‬‬
‫‪1‬‬
‫‪A0000 H‬‬
‫در مبنای دو ‪:‬‬
‫‪1010000000000000000‬‬
‫‪1 x 219 +1 x 217 = 210 (29 + 27) = (512 + 128) x 210 = 640K‬‬

‫‪17‬‬
‫پشته چیست و چرا الزم است؟‬

‫• پشته یا ‪ stack‬بخشی از حافظه ‪ RAM‬است که به‬


‫وسیله ‪ CPU‬برای ذخیره موقت اطالعات به کار میرود‪.‬‬

‫• ‪ CPU‬برای ذخیرهسازی به پشته نیاز دارد‪ ،‬زیرا تعداد‬


‫رجیسترها در داخل آن محدود است‪ .‬بنابراین برای‬
‫ذخیره موقت اطالعات باید محلی در نظر گرفته شود‪.‬‬
‫چرا ‪ CPU‬با رجیسترهای بیشتر طراحی نمیشوند؟‬

‫• در طراحی ‪ ،CPU‬ترانزیستورگرانقیمت بوده و به تعداد‬


‫کافی برای ساخت صدها رجیستر در اختیار نیستند‪.‬‬

‫• عالوه بر اینها هر ‪ CPU‬چند رجیستر داشته باشد تا هر‬


‫برنامه یا کاربردی را جوابگو باشد؟‬

‫• همه تکنیکهای بهکار رفته در برنامهنویسی و کاربردهای‬


‫مختلف یکسان نیستند‪.‬‬
‫عیب پشته‬
‫مهمترین عیب پشته‪ ،‬زمان دستیابی به آن است‪.‬‬ ‫•‬
‫از آنجا که پشته در حافظه ‪ RAM‬قرار دارد‪ ،‬زمان‬ ‫•‬
‫خواندن و نوشتن اطالعات از آن بسیار طوالنیتر از‬
‫رجیستر است‪.‬‬
‫رجیسترها در داخل ریزپردازنده بوده ولی ‪ RAM‬خارج‬ ‫•‬
‫از آن است‪.‬‬
‫برخی از کامپیوترهای قدرتمند‪ ،‬فاقد پشته بوده و در‬ ‫•‬
‫عوض ریزپردازنده آن دارای تعداد زیادی رجیستر است‪.‬‬
‫نحوه دسترسی به پشته‬
‫• چون پشته بخشی از ‪ RAM‬است‪ ،‬لذا توسط‬
‫رجیسترهای داخل ریزپردازنده باید به آن اشاره کرد‪.‬‬
‫• دو رجیستر اصلی ‪( SS‬قطعه پشته) و ‪( SP‬اشارهگر‬
‫پشته) برای دسترسی به پشته مورد استفاده قرار‬
‫میگیرند‪.‬‬
‫• آدرس منطقی داخل پشته با ‪ SS:SP‬ساخته میشود‪.‬‬
‫نحوه دسترسی به پشته‬
‫همه رجیسترهای داخل ریزپردازنده به جز دو رجیستر ‪ SS‬و ‪SP‬‬ ‫•‬
‫قابل ذخیرهسازی در پشته و بازیابی از آن است‪.‬‬
‫ذخیره رجیستر در پشته را درج یا ‪ PUSH‬گویند‪.‬‬ ‫•‬
‫بازیابی رجیستر از پشته را بازیافت یا ‪ POP‬مینامند‪.‬‬ ‫•‬
‫وظیفه رجیستر ‪ SP‬به هنگام عملیات درج و بازیافت خیلی‬ ‫•‬
‫حساس است‪.‬‬
‫در ریزپردازنده ‪ ،80x86‬رجیستر ‪ SP‬به مکان حافظه جاری به‬ ‫•‬
‫کار رفته در باالی پشته رفته و به محض عملیات درج کاهش‬
‫مییابد‪ .‬برعکس هنگام بازیافت پشته به ‪ ،CPU‬این اشارهگر‬
‫افزایش مییابد‪.‬‬
‫مثال ‪3‬‬
‫• فرض کنید‪:‬‬
‫‪AX =24B6 H ، DX = 5F93 H ، DI = 85C2 H ،SP = 1236 H‬‬
‫پس از اجرای دستورات زیر‪ ،‬محتوای مکان پشته را نشان دهید‪.‬‬

‫‪PUSH AX‬‬
‫‪PUSH DI‬‬
‫‪PUSH DX‬‬
3 ‫پاسخ مثال‬
AX =24B6 H‫ و‬DX = 5F93 H ، DI = 85C2 H ،SP = 1236 H •
‫مثال ‪4‬‬
‫• با فرض ‪ ،SP = 18FA H‬محتوای پشته و رجیسترها را‬
‫پس از اجرای دستورات زیر تعیین کنید‪.‬‬

‫‪POP CX‬‬
‫‪POP DX‬‬
‫‪POP BX‬‬
4 ‫پاسخ مثال‬
POP CX
POP DX
POP BX
‫آدرس فیزیکی پشته‬
‫پشته‪ ،‬یکی از چهار قطعه یا سگمنت داخل حافظه است و‬ ‫•‬
‫برای دسترسی به آن آدرس فیزیکی الزم است که از‬
‫آدرس منطقی ‪ SS:SP‬ساخته میشود‪.‬‬
‫در ریزپردازندههای ‪ 80x86‬باالی پشته آخرین مکان‬ ‫•‬
‫اشغال شده است‪.‬‬
‫‪ SP‬در اینجا‪ ،‬آدرس تفاوت مکان به شمار میرود‪.‬‬ ‫•‬
‫‪ BP‬رجیستر دیگری است که میتواند به عنوان آدرس‬ ‫•‬
‫تفاوت مکان بهکار رود‪ ،‬اما این رجیستر کاربرد بسیار‬
‫خاصی دارد‪.‬‬
‫مثال ‪5‬‬
‫• اگر‪ SS =3500 H‬و ‪ SP=FFFF H‬بیابید‪:‬‬
‫الف) آدرس منطقی‬
‫ب) آدرس تفاوت مکان‬
‫ج) آدرس فیزیکی‬
‫د) محدوده پایین قطعه پشته‬
‫ه) محدوده باالی قطعه پشته‬
5 ‫پاسخ مثال‬
SS:SP = 3500:FFFF H )‫الف‬
SP = FFFF H )‫ب‬
35000 )‫ج‬
FFFF
44FFF

35000 + )‫ه‬ 35000 +)‫د‬


FFFF 0000
44FFF 35000
‫تمرین‬
‫ارسال تا ساعت ‪ 12‬شب چهارشنبه شب هفته بعد به‬
‫‪teymoori.olum@yahoo.com‬‬
‫با فرمت زیر‪:‬‬
‫تمرین سری اول درس ریزپردازنده دانشجو ‪...‬‬

‫‪30‬‬
‫تمرین‬
‫‪ (1‬فرض کنید که آدرس فیزیکی برای یک مکان از حافظه‪،‬‬
‫‪ 0046CH‬باشد‪ .‬اگر ‪ CS=0020H‬باشد‪ ،‬آدرس تفاوت مکان‬
‫چقدر خواهد بود؟‬
‫‪ )2‬اگر دستورالعملی از آدرس فیزیکی ‪ 389F2H‬با ‪ CS=2700‬برداشت‬
‫شود‪ ،‬آیا محدوده قطعه در آن منظور شده است یا خیر؟ اگر نه چه مقداری‬
‫باید به ‪ CS‬نسبت داده شود در صورتی که ‪ IP‬برابر ‪ 1282H‬باشد‪.‬‬
‫‪ )3‬اگر ‪ SP=24FCH‬باشد‪ ،‬آدرس تفاوت مکان پشته برای درج داده‬
‫چیست؟‬

‫‪31‬‬
‫تمرین‬
‫‪ )4‬فرض کنید ‪ BX=F43CH ،AX=3291H ،SP = FF2EH‬و‬
‫‪ CX = 1100H‬باشد‪ ،‬محتوای حافظه پشته و اشارهگر پشته پس از‬
‫اجرای دستورات زیر را تعیین کنید‪.‬‬
‫‪PUSH AX‬‬
‫‪PUSH BX‬‬
‫‪PUSH CX‬‬
‫‪ )5‬فرض کنید آدرس فیزیکی خانه حافظه‌ای در ریزپردازنده ‪ 8086‬برابر‬
‫‪ 3A200 H‬است‪ .‬حداقل دو آدرس منطقی پیدا کنید که این آدرس‬
‫فیزیکی را تولید کنند‪.‬‬

‫‪32‬‬

You might also like