Professional Documents
Culture Documents
منهج دوائر المنطقية 9-1
منهج دوائر المنطقية 9-1
عند كتابة برنامج بأحد اللغات العالٌة المستوى ٌقوم برنامج الترجمة compilerبتحوٌل البرنامج الى
برنامج هدفً بالغة األلة .....وبعدها ٌتم تحمٌل هذا البرنامج الهدفً فً الذاكرة الرئٌسٌة....
األن ٌقوم المعالج بتنقٌد هذا البرنامج على مرحلتٌن:
المرحلة األولى مرحلة التجهٌز .FETCH
المرحلة الثانٌة مرحلة التنقٌد .EXECUTE
هناك الكثٌر من أنواع المعالج المتوفرة ،سنقوم بدراسة نوع صغٌر جدا فقط للتوضٌح.
ٌحتوي المعالج التوضٌحً على مسجل التعلٌمة ) IR ) Instruction Registerلتخزٌن نسخة من
التعلٌمة المراد تنفٌدها من برنامجنا الموجود فً الذاكرة الرئٌسٌة المراد تنقٌده.
( ) PCلتخزٌن عنوان وٌحتوي معالجنا التوضٌحً على مسجل العداد Program Counter
التعلٌمة التالٌة للتنفٌذ فً برنامجنا المراد تنقٌده فً الذاكرة الرئٌسٌة.
أٌضا ٌ ،حتوي معالجنا التوضٌحً على مسجل ذو أغراض عامة مسجل .Y
د.سمٌر امبارك
تشغيل المعالج:
عند تشغٌل المعالج التوضٌحً تكون محتوٌات مسجل العداد .PC=0
الخطوة األولى:
ٌتم أخد نسخة من أول تعلٌمة من البرنامج المراد تنقٌده فً الذاكرة الرئٌسٌة السطر صفر وتخزٌنها فً
مسجل IRبالمعالج التوضٌحً
الخطوة الثانٌة:
تتغٌر محتوٌات مسجل PCلتشٌر الى عنوان التعلٌمة التالٌة للتنفٌذ فً برنامجنا المراد تنقٌده
فٌها ٌتم ترجمة وتفسٌر وتنفٌد تعلٌمة برنامجنا الموجود نسخة منها داخل مسجل .IR
األن ٌقوم معالجنا التوضٌحً للرجوع الى مرحلة FETCHمن جدٌد لتجهٌر التعلٌمة التالٌة للتنفٌذ فً
برنامجنا المراد تنفٌذه حٌث ٌشٌر إلٌها قٌمة مسجل PC
واألن ٌقوم معالجنا التوضٌحً للرجوع الى مرحلة EXECUTEحٌث ٌتم ترجمة وتفسٌر وتنفٌد تعلٌمة
برنامجنا الموجود نسخة منها داخل مسجل IR
....
....
وهكذا بٌن مرحلة FETCH
ومرحة EXECUTE
....
....
الى أٌن تأتً تعلٌمة من برنامجنا المراد تنقٌده فً الذاكرة الرئٌسٌة ٌكون ترجمتها وتفسٌرها النهاٌة
فٌتوقف المعالج.
د.سمٌر امبارك
فً مرحلة التنقٌد ٌ EXECUTEتم تقسٌم محتوٌات IRالى جزئٌٌن:
ومن خالله ٌتم معرفة نوع األمر المراد تنقٌده وذلك بالرجوع الى جدول التعلٌمات الخاص للمعالج
التوضٌحً .
د.سمٌر امبارك
مثال :قم بمتابعة هذا البرنامج
0 00000000000
0 00000000000
2 00000000000
3 00000000000
4 00000000000
5 00000000000
6 00000000000
7 00000000000
8 00000000000
الحل:
عند تشغٌل المعالج التوضٌحً تكون محتوٌات المسجل
PC =0
]OP code[011
]Z [00000111
بالرجوع الى جدول التعلٌمات الخاص للمعالج التوضٌحً نجد ] OP[011تعنً
عملٌة LOAD
د.سمٌر امبارك
األن عملٌة FETCH
]OP code[100
]Z [00001000
وبالرجوع الى جدول التعلٌمات الخاص للمعالج التوضٌحً نجدد ] OP[100تعنً
عملٌة ADD
)Y<----- Y+M(Z
)Y <------ 12 + M(8
Y <------ 12 + 6
األن عملٌة FETCH
د.سمٌر امبارك
األن عملٌة FETCH
2-PC<----- PC +1
PC =6
األن عملٌة : EXECUTEتقسم محتوٌات IRالى
عملٌة LOADI
فً هذه الحالة نحتاج الحقل dوهو 4خانات الٌمنى من Zوهً []0000
]Z[00001000
وبالرجوع الى جدول التعلٌمات الخاص للمعالج التوضٌحً نجد ] OP[111والحقل ] d[1000تعنً
عملٌة STOP
د.سمٌر امبارك
مثال :قم بمتابعة هذا البرنامج
0 00000000000
0 00000000000
2 00000000000
3 00000000000
4 00000000000
5 00000000000
6 00000000000
7 00000000000
8 00000000000
9 00000000000
00 00000000000
00 00000000000
02 00000000000
الحل:
عند تشغٌل المعالج التوضٌحً تكون محتوٌات
المسجل PC=0
عملٌة FETCH
د.سمٌر امبارك
: EXECUTE عملٌة
OP CODE [001]
Z=[00000100]
M(Z) <---- Y
M(4) = 10
M(4)=[00000001010]
FETCH عملٌة
1- IR <---- M(2)
IR =[11100000100]
2- PC =3
: EXECUTE عملٌة
OP CODE [111]
d نحتاج الحقل
d[0100]
STROBE نوع العملٌة
EX.DV. <------ Y
FLAG=1 هنا تصبح قٌمة
EX.DV. = 10
FETCH عملٌة
1- IR <---- M(3)
IR =[11000000111]
2- PC =4
: EXECUTE عملٌة
OP CODE [110]
Z [00000111]
JUMPFL التعلٌمة
if FLAG =1
سمٌر امبارك.د
FETCH عملٌة
1- IR <----- M(7)
IR =[10100000110]
2- PC = 8
: EXECUTE عملٌة
OP CODE [101]
Z =[00000110]
Y <------ Y - M(Z)
Y <----- 10 - M(6)
Y <------ 10 - 15
Y = -5
FETCH عملٌة
1- IR <---- M(8)
IR =[11100000010]
2- PC =9
: EXECUTE عملٌة
OP CODE [111]
d[0010]
SKIPNG عملٌة
إذا، نعم تحقق الشرط سالبةif Y
PC<-----PC +1
PC=10
FETCH عملٌة
1- IR <----- M(10)
IR =[11100000001]
2- PC =11
: EXECUTE عملٌة
OP CODE [111]
DATAIN عملٌة من الجدول نجد انهاd[0001]
Y <------ EX.DV
Y =10 / FLAG=0 هنا تصبح قٌمة
سمٌر امبارك.د
FETCH عملٌة
1- IR <----- M(11)
IR =[11100001000]
2- PC = 12
EXECUTE عملٌة
OP CODE [111]
d[1000]
STOP
سمٌر امبارك.د
د.سمٌر امبارك