ریزپردازنده ها
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