
المحتويات
الإهداء
عرض الكتاب
الفصل الأول : عصر الميكروبروسيسور 1
1-1 عصر الميكروبروسيسور 3
1-2 أين يقع المعالج في داخل الميكروكومبيوتر ؟ 5
1-2-1 الذاكرة 6
1-2-2 وحدات الإدخال والإخراج 7
1-2-3 وحدة المعالجة المركزية 8
1-3 ماذا تعني هذه الألفاظ ؟ 8
1-3-1 الميكروكومبيوتر والميكروبروسيسور 8
1-3-2 البرمجة والبناء software and hardware 9
1-3-3 الأمر والبرنامج 10
1-3-4 لغات البرمجة 10
1-3-5 البت والبايت 12
1-4 تمارين 12
الفصل الثاني : البناء المعماري للمعالج 15
2-1 مقدمة 17
2-2 المهام الأساسية المطلوبة من المعالج 17
2-3 أجزاء المعالج الأساسية 18
2-4 المسجلات والعدادات في شريحة المعالج 18
2-4-1 مسجل التراكم accumulator 19
2-4-2 عدد البرنامج instruction counter 20
2-4-3 مسجل وفاكك شفرة الأوامر instruction register & decoder 20
2-4-4 مسجل الحالة status register 21
2-4-4-1 علم الصفر zero flag 21
2-4-4-2 علم الإشارة sign flag 21
2-4-4-3 علم الحمل carry flag 21
2-4-4-4 علم الباريتى parity flag 22
2-4-4-5 علم الحمل النصفى أو البينى half carry flag 22
2-4-5 مسجل مؤشر المكدسة stack pointer register 23
2-4-6 المسجلات عامة الأغراض 23
2-5 نظرة خارجية على شرائح المعالج 25
2-5-1 مسار العناوين address bus 26
2-5-2 مسار البيانات data bus 26
2-5-3 خطوط التحكم control lines 27
2-6 شرائح المعالجات ذات 8 بت 8 bit microprocessors 30
2-6-1 الشريحة intel 8085 30
2-6-2 المعالج z80 30
2-7 تمارين 33
الفصل الثالث : برمجة المعالج 35
3-1 مقدمة 37
3-2 لغات الحاسب 37
3-3 ما هو الأمر ؟ 37
3-4 ما هو البرنامج ؟ 38
3-5 كيف يقوم المعالج بتنفيذ البرنامج ؟ 39
3-6 طريقة كتابة البرنامج للمعالج 40
3-6-1 الشفرات الثنائية binary codes 40
3-6-2 الشفرات الستعشرية hexadecimal codes 40
3-6-3 الشفرات الحرفية mnemonics codes 42
3-7 اللغات ذات المستوى العالى high level languages 44
3-8 خطوات كتابة برنامج بلغة الأسمبلى 45
3-9 تمارين 48
الفصل الرابع : برمجة المعالج intel 8085 51
4-1 مقدمة 53
4-2 مجموعة أوامر الانتقال transfer instructions 53
4-2-1 الأمر MOV 53
4-2-2 الأمر MVI 55
4-2-3 الأمر LXI 57
4-2-4 الأمران STA و LDA 60
4-2-5 الأمران LHLD و SHLD 61
4-3 تمارين 62
4-4 مجموعة أوامر الحساب arithmetic instructions 63
4-4-1 الأمران ADD و SUB 64
4-4-2 الأمران ADI و SUI 66
4-4-3 الأمران ADC و ABB 67
4-4-4 الأمران INR و DCR 69
4-4-5 الأمران INX و DCX 71
4-5 تمارين 71
4-6 مجموعة أوامر القفز jump instructions 73
4-6-1 القفز غير المشروط unconditional jump 73
4-6-2 القفز المشروط conditional jump 73
4-7 مهمة أخرى للأسمبلر 75
4-7-1 الأمر والمعاملات 75
4-7-2 التعليق comment 77
4-7-3 العمة label 78
4-8 أوامر الإدخال والإخراج input output instructions 79
4-9 مجموعة أوامر المنطق logic instructions 83
4-10 كيفية الاتصال بالذاكرة memory addressing 85
4-10-1 الطريقة المباشرة direct method 85
4-10-2 الطريقة غير المباشرة indirect method 85
4-11 تمارين 95
الفصل الخامس : برمجة المعالج z80 99
5-1 مقدمة 101
5-2 مجموعة أوامر الانتقال transfer instructions 101
5-2-1 نقل معلومة من مسجل إلى مسجل آخر 101
5-2-2 تحميل مسجل بثابت أو معلومة فورية 102
5-2-3 نقل معلومة من مسجل إلى الذاكرة والعكس 105
5-2-3-1 الطريقة المباشرة direct addressing 106
5-2-3-2 الطريقة غير المباشرة indirect addressing 107
5-2-3-2 طريقة الفهرسة indexed addressing 109
5-3 تمارين 109
5-4 مجموعة أوامر الحساب arithmetic instructions 110
5-4-1 الأمران ADD و SUB 110
5-4-2 الأمران ADC و SBC 113
5-4-3 الأمران INC و DEC 115
5-4-4 العمليات الحسابية على أزواج المسجلات 115
5-4-5 أمر المقارنة compare instruction 117
5-5 تمارين 118
5-6 مجموعة أوامر القفز jump instructions 119
5-6-1 القفز غير المشروط unconditional jump 119
5-6-2 القفز المشروط conditional jump 120
5-6-3 القفز النسبي relative jump 120
5-7 مهمة أخرى للأسمبلر 121
5-8 أوامر الإدخال والإخراج input output instructions 121
5-8-1 أوامر الإدخال input instructions 122
5-8-2 أوامر الإخراج output instructions 123
5-9 مجموعة أوامر المنطق logic instructions 123
5-10 تمارين 141
الفصل السادس : المعالج من البداية حتى النهاية 145
6-1 مقدمة 147
6-2 الجمع الثنائي binary addition 147
6-2-1 دائرة نصف المجمع half adder 148
6-2-2 دائر الجمع الكامل full adder 149
6-3 الطرح الثنائي binary subtraction 150
6-4 وحدة الحساب والمنطق arithmetic and logic unit 154
6-5 مسجل التراكم accumulator register 157
6-6 إضافة ذاكرة للمعالج الافتراضي 161
6-7 تمارين 165
الفصل السابع : أساسيات مواجهة المعالج 167
7-1 مقدمة 169
7-2 فصل buffering خطوط المعالج 169
7-2-1 ماذا تعني بكلمة فصل ؟ 169
7-2-2 متى تحتاج لفصل خطوط المعالج ؟ 170
7-3 البوابات ثلاثية المنطق tristate logic gates 172
7-3-1 بوابات المنطق الثنائي 174
7-3-2 البوابات ثلاثية المنطق 175
7-4 الماسك latch 177
7-5 بعض الشرائح التي تستخدم في فصل المسارات 178
7-5-1 الشريحة 74244 عازل ثماني ثلاثي المنطق 178
7-5-2 الشريحة 74245 فاصل ذو ثمان بتات ثنائي الاتجاه ثلاثي المنطق 179
7-5-3 الشريحة 74374 فاصل ماسك ذو ثمان بتات 181
7-6 تمارين 182
الفصل الثامن : فصل مسارات المعالج 183
8-1 مقدمة 185
8-2 لماذا مسار العناوين ؟ 186
8-3 لماذا مسار التحكم 188
8-4 تهيئة مسارات المعالج 8085 لعملية المواجهة 190
8-4-1 مسار العناوين للمعالج 8085 191
8-4-2 مسار البيانات للمعالج 8085 192
8-4-3 مسار التحكم للمعالج 8085 194
8-5 تهيئة مسارات المعالج Z80 لعملية المواجهة 196
8-6 تمارين 200
الفصل التاسع : مواجهة الذاكرة memory interfacing 203
9-1 مقدمة 205
9-2 أساسيات بناء ذاكر الحاسب 206
9-3 كيف سنوصل الذاكرة على المعالج ؟ 210
9-3-1 مثال توضيحي 210
9-3-2 نظام بلوكات الذاكرة 210
9-3-3 بناء البلوكات من شرائح 213
9-4 تمارين 220
الفصل العاشر : الإدخال والإخراج 221
10-1 مقدمة 223
10-2 طرق إرسال واستقبال المعلومات الرقمية 225
10-3 الطريقة الأولى من طرق الإدخال والإخراج باستخدام الأمرين IN و OUT 227
10-3-1 دائرة بوابة الإخراج output port 228
10-3-2 دائرة بوابة الإدخال input port 234
10-4 الطريق الثانية من طرق الإدخال والإخراج
باستخدام خريطة الذاكرة memory map 236
10-4-1 دائرة بوابة الإخراج باستخدام خريطة الذاكرة 238
10-4-2 دائرة بوابة الإدخال باستخدام خريطة الذاكرة 239
10-5 البوابات القابلة للبرمجة 241
10-5-1 تركيب الشريحة 8255 A 242
10-5-2 برمجة الشريحة 8255 A 244
10-5-3 حالات modes تشغيل الشريحة 8255 A 248
10-5-3-1 الحالة صفر mode zero 249
10-5-3-2 الحال واحد mode one 252
10-5-3-3 الحالة اثنين mode two 258
10-6 تمارين 258
الفصل الحادي عشر : التحكم في إشارة مرور 261
11-1 مقدمة 263
11-2 تركيب الدائرة 263
11-2-1 مثال توضيحي 264
11-3 الأطراف الأخرى للمعالج 8085 266
11-3-1 إشارات التزامن clock 266
11-3-2 بدء وإعادة التشغيل 267
11-3-3 الطرفان hold و hlda 269
11-3-4 الطرف ready 270
11-3-5 طرفي الحالة so و si 271
11-3-6 أطراف المقاطعة 272
11-3-7 الطرفان sid و sod 272
11-4 الأطراف الأخرى للمعالم Z80 272
11-4-1 أطراف المقاطعة 272
11-4-2 الطرف RFSH 273
11-4-3 الطرف HALT 273
11-4-4 الطرف WAIT 273
11-4-5 الطرف MI 274
11-4-6 الطرف CLK 274
11-5 إشارات المرور 274
11-6 تمارين 282
الفصل الثاني عشر : البرامج الفرعية subroutines 283
12-1 مقدمة 285
12-2 ما هو البرنامج الفرعي ؟ 285
12-3 كيف يعد المعالج إلى نفس المكان الذي خرج منه ؟ 287
12-4 حساب أزمنة التأخير 291
12-5 تمارين 294
الفصل الثالث عشر : المقاطعة interrupt 297
13-1 مقدمة 299
13-2 طريقة طرق الأبواب لخدمة الأجهزة المحيطة polling 299
13-3 المقاطعة 301
13-4 مقاطعة المعالج 8085 302
13-4-1 الخطوط RST7.5 و RST6.5 و RST5.5 303
13-4-2 الخط TRAP 312
13-4-2 الخط INTR 313
13-4-4 كيف يتم تحديد العنوان الذي سيتم القفز إليه
في حالة المقاطعة INTR ؟ 314
13-5 مقاطعة المعالج Z80 315
13-5-1 الخط MMI 315
13-5-2 الخط INT 317
13-6 تمارين 321
الفصل الرابع عشر : التركيب الهيكلي للمعالج intel/8086/8088 323
14-1 مقدمة 325
14-2 نظرة داخلية على محتويات المعالج 8086/8088 326
14-3 نظرة تفصيلية على مسجلات المعالج 8086/8088 327
14-3-1 المسجلات عامة الأغراض 329
14-3-2 المسجلات الخاصة 332
14-4 تجزئ الذاكرة memory segmentation 332
14-4-1 مسجل تجزئ البرامج CS 335
14-4-2 مسجل تجزئ البيانات DS 335
14-4-3 مسجل تجزئ المكدسة SS 335
14-4-4 مسجل التجزئ الإضافي ES 336
14-4-5 مسجل الأعلام SR 336
14-5 طرق العنونة addressing modes 338
14-5-1 عنونة المسجل 339
14-5-2 العنونة الفورية 339
14-5-3 العنونة المباشرة 340
14-5-4 العنونة الغير المباشرة 340
14-5-5 عنونة القاعدة زائد الفهرسة 341
14-5-6 العنونة النسبية 341
14-6 تمارين 342
الفصل الخامس عشر : برمجة المعالج intel/8086/8088 345
15- 1 مقدمة 347
15-2 خطوات كتابة وتنفيذ برامج لغة التجميع 347
15-3 مكونات برنامج الأسمبلي 348
15-4 أوامر لغة الإسمبلي 353
15-5 مجمعة أوامر الانتقال 353
15-6 الديبجر debugger 356
15-6-1 إظهار محتويات المسجلات 356
15-6-2 عرض أوامر الأسمبلي ابتداء من عنوان معين 357
15-6-3 عرض محتويات جزء من الذاكرة 358
15-6-4 تنفيذ البرنامج حتى عنوان معين 358
15-6-5 متابعة تنفيذ البرنامج عن طريق تنفيذ عدد n من الخطوات 359
15-6-6 تغيير محتويات عنوان في الذاكرة 359
15-6-7 الخروج من الديبجر 360
15-7 تمارين 360
15-8 أوامر القفز 361
15-8-1 القفز غير المشروط 361
15-8-2 القفز المشروط 361
15-8-3 الأمر LOOP 363
15-9 أول خطوات التعامل مع الذاكرة 364
15-9-1 الطريقة المباشرة 364
15-9-2 الطريقة غير المباشرة 364
15-10 أوامر الحساب 366
15-11 أوامر المنطق 374
15-12 أوامر الإزاحة والدوران 376
15-3 تمارين 383
الفصل السادس : مواجهة المعالج 8086/8088 385
16-1 مقدمة 387
16-2 الوظائف المختلفة لأطراف الشريحة 8086/8088 387
16-2-1 نبضات الساعة 393
16-3 عزل مسارات المعالج 8086 393
16-4 مواجهة الشريحة 8086/8088 مع الذاكرة 394
16-5 الإدخال والإخراج من وإلى المعالج 8086/8088 399
16-6 شريحة مواجهة لوحة المفاتيح القابلة للبرمجة 8279 402
16-7 المؤقت القابل للبرمجة 8254 404
16-8 الاتصالات القابلة للبرمجة 8251 411
16-9 الاتصال المباشر مع الذاكرة 8237 A 413
16-10 المواجهة مع المعالجات الحسابية المساعدة 80 x 87 414
16-11 تمارين 415
الفصل السابع عشر : ثم ماذا ؟ What else 417
17-1 مقدمة 419
17-2 المعالج 80186 419
17-2-1 أطراف المعالج 80186 421
17-2-2 برمجة المعالج 80186 425
17-3 المعالج 80286 425
17-3-1 التركيب الهيكلي للمعالج 80286 426
17-4 المعالج 80386 428
17-4-1 التركيب الهيكلي للمعالج 80386 428
17-4-2 تنظيم الذاكرة للمعالج 80386 428
17-4-3 نظام الإدخال والإخراج في المعالج 80386 431
17-4-4 أطراف المعالج 80386 431
17-4-5 مسجلات المعالج 80386 433
17-5 الذاكرة المخبأة Cache memory 434
17-6 المعالج 80486 435
17-7 السياسة والأوامر instruction pipelining 436
17-8 سلسة معالجات بنتيم Pentium processors 441
17-9 المعالج بنتيم برو Pentium pro processor 443
17-10 تمارين 445
الملحق الأول : الحساب الرقمي 447
مراجع الكتاب 455