ریزپردازنده ها

Download Report

Transcript ریزپردازنده ها

‫مهدی ایل بیگی‬
‫دانشگاه آزاد اسالمی دماوند‬
‫‪ .1‬برنامه نویس ی اسمبلی نوشته دکتر محمد علی مزیدی انتشارات نص‪.‬‬
‫‪ .2‬برنامه نویس ی ماشین و اسمبلی نوشته دکتر حسن سید رض ی انتشارات ناقوص‪.‬‬
‫‪ .3‬برنامههه نویس ه ی سرسههتم ب هرای ههام یو ر ههای‬
‫ه ی نوشههته ما ت ه رشههر رجمههه امیههر‬
‫صادقی‪ ،‬انتشارات نشر دانشگاهی‪.‬‬
‫‪ .4‬زب ههان ههای ماش ههین و برنام ههه س ههازی سرس ههتم‪ ،‬م ههد داری ههو نیه ه م ههر‪ ،‬انتش ههارات‬
‫دانشگاه پیام نور‪.‬‬
‫‪2‬‬
‫‪‬‬
‫آزمون پایان ترم‪ 14 :‬نمره‬
‫‪‬‬
‫تمرین ها‪ 2 :‬نمره‬
‫‪‬‬
‫پروژه پایانی‪ 4 :‬نمره‬
‫‪3‬‬
‫• مقدمه ای برمحاسبات‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ریزپردازنده ‪Pentium‬‬
‫اصول برنامه نویس ی به زبان اسمبلی‬
‫دستورات محاسباتی‪ ،‬م طقی‬
‫دستورات ک ترلی‬
‫وقفه ا‬
‫ماکرو ا‬
‫• عملیات رشته ای‬
‫• …‬
‫‪4‬‬
‫• زبانهای برنامه نویس ی‪:‬‬
‫– سطح باال (پاسکال‪ C ,‬و ‪)...‬‬
‫• نزد به زبان محاوره‬
‫• مستق از ریزپردازنده‬
‫– سطح پایین (اسمبلی)‬
‫• نزد به کد ماشین‬
‫• وابسته به ریزپردازنده‬
‫‪5‬‬
‫• ریزپردازنده ا انواع (خانواده ای) مختلف دارند‪.‬‬
‫• فاوت ای بین ریزپردازنده ا‪ :‬مجموعه دستورات‪ ،‬ساختار داخلی‬
‫• ساختار کلی‪:‬‬
‫‪‬‬
‫•‬
‫•‬
‫•‬
‫‪6‬‬
‫اجزاء اصلی ریزپردازنده ا‪:‬‬
‫واحد ‪( ALU‬اجرای دستورات محاسباتی و م طقی)‬
‫مجموعه ثبات ا (نگ داری موقت داده ا)‬
‫واحد )‪( CU(Control Unit‬ک ترل عملیات پردازنده)‬
‫• مراحل اجرای دستورات‪:‬‬
‫– ‪ :Fetch‬بارگذاری دستور از حافظه به ثبات‬
‫– ‪ :Decode‬رجمه و تش یص دستور‬
‫– ‪ :Operand Fetch‬بارگذاری عملوند از حافظه به ثبات‬
‫– ‪ :Execute‬اجرای دستور‬
‫• اجزاء یک دستور‪:‬‬
‫‪ :Opcode ‬کد دستور‬
‫‪ :Operands ‬عملوند ا‬
‫‪ ‬نکته‪ :‬طول دستورات در پردازنده ای مختلف متفاوت است‪.‬‬
‫‪Operands‬‬
‫‪7‬‬
‫‪Opcode‬‬
‫• در زبههان ههای سههط ب هها نگ هران ا ک ههه داده هها در ههام یو ر یگون ههه نم هها داده م ههی ش هوند‬
‫نرسهتیم‪ ،‬ولهی در زبهان های اسهمبلی با سهکی بفکهر یگهونگی اخیهره داده باشهیم و اغله بها ههار‬
‫بد داده ا از نوع به نوع د گر مواجه می باشیم‪.‬‬
‫• اعداد دودویی و شانزده شانزدهی‪:‬‬
‫‪ ‬حافظه ای ام یو ر فقط می واند ارقهام ‪ 0‬ها ه را در خهود اخیهره نما هد کهه بهه ن ها‬
‫برت گفته می شود‪ .‬در سرستم دودوئی اعداد از برت ا تشکی شده اند‪.‬‬
‫برت صفر = ‪ 0‬ولت‬
‫برت = ‪ 5‬ولت‬
‫‪ ‬اعداد شانزدهی از ارقام ‪ 0‬ا ‪ 15‬تشکی شده اند‪ .‬برای راحکی‪ ،‬ارقام ‪ 10‬ا ‪ 15‬را ‪ A‬ا‬
‫‪ F‬نشان داده می شود‪.‬‬
‫‪8‬‬
‫‪9‬‬
‫دودويي‬
‫شانزده شانزدهي‬
‫دهدهي‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪10‬‬
‫‪2‬‬
‫‪2‬‬
‫‪11‬‬
‫‪3‬‬
‫‪3‬‬
‫‪100‬‬
‫‪4‬‬
‫‪4‬‬
‫‪101‬‬
‫‪5‬‬
‫‪5‬‬
‫‪110‬‬
‫‪6‬‬
‫‪6‬‬
‫‪111‬‬
‫‪7‬‬
‫‪7‬‬
‫‪1000‬‬
‫‪8‬‬
‫‪8‬‬
‫‪1001‬‬
‫‪9‬‬
‫‪9‬‬
‫‪1010‬‬
‫‪A‬‬
‫‪10‬‬
‫‪1011‬‬
‫‪B‬‬
‫‪11‬‬
‫‪1100‬‬
‫‪C‬‬
‫‪12‬‬
‫‪1101‬‬
‫‪D‬‬
‫‪13‬‬
‫‪1110‬‬
‫‪E‬‬
‫‪14‬‬
‫‪1111‬‬
‫‪F‬‬
‫‪15‬‬
‫• نحوه محاسبه اعداد د دی‪:‬‬
‫‪(132)10= 2*100 +3*101 +1*102‬‬
‫• بد عدد د دی ‪ 46‬به عدد دودویی بوسیله قسیم متوالی‪:‬‬
‫‪46/2 => 23/2 => 11/2 => 5/2 => 2/2 => 1/2 => 0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫باقیمانده ای قسیم← ‪1‬‬
‫‪=> 46 = 101110 binary‬‬
‫• نکته‪ :‬باقیماده ها را از انتها به ابتدا در کنار هم قرار می دهیم‪.‬‬
‫• بد عدد دودویی به د دهی‪:‬‬
‫‪(110101)2 =1*20 +0*21 +1*22 +0*23 +1*24 +1*25 = 53 decimal‬‬
‫‪10‬‬
‫• برای بد اعداد از مب ای ‪ 10‬به مب ای ‪ ،16‬بصورت متوالی عدد را بر ‪ 16‬قسیم می نما یم و باقی‬
‫مانده ا را از انتها ا ابتدا در مب ای ‪ 16‬می نویسیم‪.‬‬
‫• مثال‪ :‬عدد ‪1389‬را در مب ای ‪ 16‬نما‬
‫د ید و سپس به مب ای ده برگردانید‪.‬‬
‫‪(1389)10 = (56D)16‬‬
‫‪16‬‬
‫‪5‬‬
‫‪16‬‬
‫‪86‬‬
‫‪80‬‬
‫‪1389‬‬
‫‪1376‬‬
‫‪13‬‬
‫‪6‬‬
‫‪(56D)16 = D*160 + 6*161 + 5*162 = 13 + 96 + 1280 = 1389‬‬
‫‪11‬‬
‫• برررای تبرردیل اعررداد دودو رری برره شررانزده شررانزدهی ارقررام عرردد داده شررده را از سررمر راسررر برره ترت ر برره‬
‫صررورت گررروه هررای اهررار بیررری درآورده آنگرراه مدررادل هررر گررروه در س ررتم شررانزده شررانزدهی را جررای زین مرری‬
‫نماییم‪.‬‬
‫‪ ‬مثال‪ :‬عدد ‪ 10101101011101‬در مبنای ‪ 16‬نمایش دهید‪.‬‬
‫‪0010 1011 0101 1101‬‬
‫‪2‬‬
‫‪B‬‬
‫‪5‬‬
‫‪D‬‬
‫‪(2B5D)16‬‬
‫• برای تبدیل اعداد شانزده شانزدهی به دودو ی کافی اسرر کره بره جرای هرر رقرم اهرار ب رر مدرادل آن را قررار‬
‫داد‪.‬‬
‫‪ ‬مثال‪ :‬عدد ‪ (E12A0)16‬در مبنای ‪ 2‬نمایش دهید‪.‬‬
‫‪E‬‬
‫‪1‬‬
‫‪2‬‬
‫‪A‬‬
‫‪0‬‬
‫‪1110 0001 0010 1010 0000‬‬
‫‪12‬‬
‫• برررای تبرردیل اعررداد دودو رری برره هشررر هشررری ارقررام عرردد داده شررده را از سررمر راسررر برره ترت ر برره صررورت‬
‫گررروه هررای سرره بیررری درآورده آنگرراه مدررادل هررر گررروه در س ررتم هشررر هشررری (اعررداد بررین ‪ )7-0‬را جررای زین‬
‫می نماییم‪.‬‬
‫‪ ‬مثال‪ :‬عدد ‪ 10101101011100‬در مبنای ‪ 8‬نمایش دهید‪.‬‬
‫‪010 101 101 011 100‬‬
‫‪5‬‬
‫‪3‬‬
‫‪(25534)8‬‬
‫‪4‬‬
‫‪2‬‬
‫‪5‬‬
‫• برای تبدیل اعداد هشر هشری به دودو ی کافی اسر که به جای هر رقم سه ب ر مدادل آن را قرار داد‪.‬‬
‫‪ ‬مثال‪ :‬عدد ‪ (7132)8‬در مبنای ‪ 2‬نمایش دهید‪.‬‬
‫‪2‬‬
‫‪010‬‬
‫‪13‬‬
‫‪3‬‬
‫‪011‬‬
‫‪1‬‬
‫‪001‬‬
‫‪7‬‬
‫‪111‬‬
‫‪ ‬جمع مب ای ‪:2‬‬
‫‪111‬‬
‫‪1011101‬‬
‫‪+ 10110‬‬
‫‪1110011‬‬
‫‪ ‬فریق مب ای ‪:2‬‬
‫)‪A - B = A + (-B‬‬
‫• رو ای نما اعداد م فی در ام یو ر‪.‬‬
‫– مقدار عالمت‪ :‬با ارز رین برت اگر باشد عدد م فی خوا د بود‪.‬‬
‫‪3 = 0011 , -3 = 1011‬‬
‫– مکم ‪ :1‬مکم‬
‫ر برت را بجای ن در نظر می گیر م‪.‬‬
‫‪3 = 0011 , -3 = 1100‬‬
‫– مکم ‪ :2‬از راست به یپ حرکت کرده و بعد از رسیدن به اولین برت ‪ ،‬بجای بقیه برت ا‪،‬‬
‫مکم ن برت ا را در نظر می گیر م‪.‬‬
‫‪14‬‬
‫‪3 = 0011 , -3 = 1101‬‬
‫‪ ‬مکم دو در مب ای دو‪ ،‬معادل با قری ه کردن عدد در مب ای ده است‪.‬‬
‫‪ ‬بازه اعداد در نما‬
‫مکم ‪ 2‬با استفاده از فرمول زیر محاسبه می شود‪:‬‬
‫• اگر رجرستر ‪ n‬بیکی باشد نگاه بازه اعداد قاب نما‬
‫)‪(-2n-1, 2n-1 - 1‬‬
‫• مثال‪ :‬در رجرستر ‪ 8‬بیکی بازه اعداد قاب نما برابر است با‪:‬‬
‫برابر است با‪:‬‬
‫)‪(-2(8-1), 2(8-1) - 1) = (-128, 127‬‬
‫‪ ‬نکتههه‪ :‬در زمههان محاسههبه مکمه ‪ 2‬با ههد ابتههدا عههدد را بهها وجههه بههه تعههداد برههت ههای رجرسههتر نمهها د ههیم‪.‬‬
‫بع ههوان مث ههال اگههر عههدد م هها ‪ 5‬بیکههی بههود و رجرسههتر ‪ 8‬بیک ههی‪ ،‬ابتههدا با ههد ‪3‬برههت ص ههفر بههه سههمت یههپ ع ههدد‬
‫اضافه نموده و سپس مکم ‪ 2‬را محاسبه نما یم‪.‬‬
‫‪15‬‬
‫‪ ‬یچ رو مستقیمی برای ا ن ار وجود ندارد‪ .‬رو عمومی به صورت زیر است‪:‬‬
‫‪ ‬ابتدا قری ه عدد را ولید می ک یم‪.‬‬
‫‪ ‬مقدار قری ه عدد را در مب ای ده بدست می وریم‪.‬‬
‫‪‬‬
‫عالمت م فی به جواب اضافه می ک یم‪.‬‬
‫‪ ‬رو سریع محاسبه‪:‬‬
‫– بهها وجههه بههه تعههداد برههت ههای عههدد‪ ،‬خههرین برههت را بهها عالمههت م فههی در نظههر مههی گیههر م و سههپس بهها‬
‫وجه به موقعیت برت ا‪ ،‬مان د قب عدد دودویی را به عدد د دهی بد می ک یم‪.‬‬
‫‪ ‬ب هرای بههد ه عههدد م فههی بههه مب ههای دو ههیچ رو مسههتقیمی وجههود نههدارد‪ .‬ب ههابر ا ههن ابتههدا عههدد را بههه‬
‫صورت مثبت به مب ای دو بد کرده‪ ،‬سپس مکم نرا محاسبه می ک یم‪.‬‬
‫‪16‬‬
‫‪ ‬مثال‪ :1‬عدد ‪ 10001000‬در نما‬
‫‪= -120‬‬
‫‪ ‬مثال‪ :2‬عدد ‪ 10010011‬در نما‬
‫‪17‬‬
‫مکم ‪ ،2‬برابر با یه عددی در مب ای ‪ 10‬می باشد؟‬
‫‪1‬‬
‫‪2‬‬
‫‪4‬‬
‫‪8‬‬
‫‪16‬‬
‫‪32‬‬
‫‪-128 64‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪8‬‬
‫‪+‬‬
‫‪1‬‬
‫‪-128‬‬
‫مکم ‪ ،2‬برابر با یه عدد د دهی می باشد؟‬
‫‪ ‬در فری ههق اع ههداد عالمت ههدار ا ج ههاد بر ههت نقل ههی لزوم هها ب ههه مع ههی ب ههروز خط هها نرس ههت‪ .‬و معم ههو ا ههن بر ههت دور‬
‫ریخته می شود‪.‬‬
‫‪ ‬نها حالت خطا زمانی است که نتیجه در ‪ 8‬برت قاب اخیره نباشد‪.‬‬
‫– مثال‪ 100 – (-100) = 200 :‬که قاب اخیره در ‪ 8‬برت (در نما‬
‫عالمتدار) نرست‪.‬‬
‫‪ ‬برای تش یص صحت انجام فریق از برت سرریز ا )‪ (Overflow‬استفاده می ک یم‪.‬‬
‫‪ ‬زمههانی کههه رقههم نقلههی در دوبرههت خههر بهها م نهها مسههاوی باش ه د برههت سههرریز ‪ 1‬خوا ههد شههد و ا ههن بههه مع ههی‬
‫رخدادن سرریز و نامعتبر بودن جواب خوا د بود‪.‬‬
‫‪ ‬در پردازشگر ا با ‪ XOR‬کردن دوبرت نقلی خهر‪ ،‬برهت سهرریز ولیهد مهی شهود‪ (XOR) .‬ه ‪Gate‬‬
‫م طقی است که در صورت متفاوت بودن دو ورودی ن‪ ،‬خروجی ن برابر ‪ 1‬می شود‪.‬‬
‫‪18‬‬
‫‪ 112 – (-100) = 212 ‬در ‪ 8‬برهت قابه اخیهره نبهوده و جهواب ههایی در نمها مکمه ‪ 2‬نهامعتبر‬
‫خوا ههد بههود‪ .‬بهها وجههه بههه ا کههه رقههم ههای نقلههی در دوبرههت خههر بهها ههم متفههاوت سههت د‪ ،‬مهها متوجههه سهرریز‬
‫می شویم و برت سرریز نیز مساوی می شود‪.‬‬
‫‪19‬‬
‫عدد اول‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫عدد دوم‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪-‬‬
‫‪1‬‬
‫‪0‬‬
‫عدد اول‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫مکمل عدد دوم‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪+‬‬
‫رقم های‬
‫نقلی دو‬
‫ب ر آخر‬
:16 ‫ اعداد مب ای‬
 3F45 = 0011 1111 0100 0101 b
 1011010110100001001111
 10,1101,0110,1000,0100,1111 b = 2D684F hexadecimal
1 1
:16 ‫ جمع اعداد مب ای‬
A34D
+ 24FF
‫هههه‬
C84C
20
‫• به هرای ب ههد ه ه ع ههدد اعش ههاری ب ههه ه ه ع ههدد ب هها ری‪ ،‬ابت ههدا قس ههمت ص ههحی ع ههدد را ب ههه رو قبه ه‬
‫بصههورت بهها ری بههد مههی نمهها یم و سههپس قسههمت اعشههاری را بههه طههور مکههرر در ‪ 2‬ضههرب مههی ک ههیم و‬
‫قسههمت صههحی حاصلرههرب را در ههر مرحلههه بههه ع ههوان برههت مههورد نظههر بهرای قسههمت اعشههاری در نظهر‬
‫می گیر م‪.‬‬
‫• مثال‪ :‬عدد ‪12/748‬را به صورت اعشاری ب ویسید‪.‬‬
‫‪12.748 = (1100.1011)2‬‬
‫‪21‬‬
‫‪12 = 1100‬‬
‫‪0.748 * 2 = 1.496‬‬
‫‪0.496 * 2 = 0.992‬‬
‫‪0.992 * 2 = 1.984‬‬
‫‪0.984 * 2 = 1.968‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫• برای بد عدد اعشاری از مب ای ‪ 2‬به مب ای ‪ ،10‬ابتدا عدد د دهی معادل با قسمت صهحی را بهه‬
‫رو قب بدست مهی وریهم و سهپس برهت های قسهمت اعشهاری را از یهپ بهه راسهت‪ ،‬بهه ر ره در ‪2-‬‬
‫‪ 2-4 ،2-3 ،2-2 ،1‬و ‪ ...‬ضرب می ک یم و سپس حاصلررب ا را با م جمع می نما یم‪ .‬مثال‪:‬‬
‫‪22‬‬
 1 bit = smallest data unit (0 or 1)
 4 bit = 1 nibble
(0 to 15), (-8 to +7)
 8 bit = 1 byte
(0 to 255), (-128 to +127)
 16 bit = 1 word
(0 to 65535), (-32768 to +32767)
 32 bit = 1 Double word
(0 to 232-1), (-231 to 231-1)
.‫د د‬
‫ عدد مختلف را می واند نما‬2n ،‫ بیکی‬n ‫رجرستر‬
:‫• نکته‬
 210 = 1Kilo = 103 , 220 = 1Mega = 106, 230 = 1Giga = 109
 240 = 1Tera = 1012, 250 = 1Peta = 1015, 260 = 1Exa = 1018
23
‫• در ام یو ر به حروف‪ ،‬ارقام و عالمت ا‪ ،‬کرکتر گفته می شود‪ .‬به ر کرکتر‬
‫کد شت بیکی‬
‫م حصر به فرد وابسته می شود که نرا کد‬
‫)‪ ASCII (American Standard Code for Information Interchange‬می‬
‫نا م د‪.‬‬
‫• در ا ن سيستم از فت بيت از شت برت‪ ،‬براي نماي‬
‫دادن کرکتر ا استفاده ميشود‪.‬‬
‫• به اين ر ي مي وان ‪ 128‬کد مختلف استي را نماي‬
‫داد‪.‬‬
‫ا‬
‫• کد اي استي معمو به صورت اعداد در مب اي شانزده ‪ 00‬ا ‪ 7F‬و د دهي ‪ 0‬ا ‪ 127‬نماي‬
‫داده ميشوند‪.‬‬
‫‪24‬‬
‫• کرکترهای قابل ااپ دارای کدهای ‪ 32‬تا ‪ 126‬می باشند‪.‬‬
‫• کرکترهای کنترلی مانند ‪ ESC, Ctrl‬و‪ ...‬دارای کدهای ‪ 0‬تا ‪ 31‬می باشند‪.‬‬
‫‪25‬‬
‫کد اسکی‬
‫کرکتر‬
‫‪ 48‬تا ‪57‬‬
‫‪ 65‬تا ‪90‬‬
‫‪ 97‬تا ‪122‬‬
‫‪ 0‬تا ‪9‬‬
‫‪ A‬تا ‪Z‬‬
‫‪ a‬تا ‪z‬‬