دورة الاسمبلي : الدرس الرابع
سنتناولالأتى فى هذا الدرس :-
---------------------------------
1 - نظم العنونه Addressing Modes
2 - تعليمات الأسمبلى Assemply Instructions
ــــــــــــــــــــــــــــــــــــــــــــــــــ
ــــــــــــــــــــــــــــــــــــــــــــــــــ
ــــــــــــــــــــــــــــــــــــــــــــــــــ
ــــــــــــــــــــــــــــــــــــــــــــــــــ ــ
1 - نظم العنونه Addressing Modes :-
-------------------------------------------------
-------------------------------------------------
-------------------
1 - الذاكره تكونمقسمه تخيليا (عن طريق نظام التشغيل و البروسسور) إلى أجزاء تسمى مقاطع (Segments) . هذه المقاطع تعمل كأقسام بيانات وهى أجزاء محددة الطول ب 64 كيلو بايت ، كل مقطعله رقمه ( عنوانه ) و يمكن الوصول إلى مقطع محدد عن طريق مسجلات المقاطع التى تمذكرها فى الدرس السابق ، عند أى إستخدام للذاكره ، يجب تحديد المقطع أولا عن طريق Data Segment أو أى مسجل مقاطع آخر ومن ثم تحديد أى مكان داخل هذا المقطع عن طريقمسجل يحمل العنوان المراد وهو بالطبع من 0 إلى 65535 ومن هنا يتم تحديد مكانالبيانات بالظبط ،ممكن أن تتخيلها بطريقه أخر : تخيل أن مدينه معينه وأريدالوصول إلى شخص ما فيها أو منزل بها ، المدينه مقسمه إلى شوارع ، كل شارع برقم معينبالترتيب و داخل كل شارع توجد منازل بأرقام مرتبه أيضا من 1 إلى 100 منزل ، كنتأريد الوصول إلى المنزل 45 فى الشارع ال 20 . عندها سأحاول البحث عن الشارع أولاومن ثم البحث داخله عن المنزل ، نفس طريقة العمل بالظبط يتم التعامل بها فى إستخدامالذاكره و تخزين و إخراج البيانات منها .
2 - عند تشغيل أى برنامج ، فإننظام التشغيل يقوم بتحميل البرنامج فى الذاكره ..أين و كم مقطع سيترك للبرنامج؟؟فى الحقيقه ، كل برنامج يتم تشغيله على الأقل يأخذ 2 مقطع ، مقطع للشفره Code Segment يتم وضع عنوان هذا المقطع داخل CS مادام البرنامج يتم العمل داخله ،والمقطع الآخر يوضع به البيانات لذلك سمى ب Data Segment ويوضع عنوان هذا المقطع فى DS ،كل برنامج يكون مكتوب به عدد المقاطع التى يحتاجها أولا ، هذا لخدمةالبرامج الكبيرة و التى تكون حجمها أكبر من وضعها فى مقطع واحد ، يتم فعليا تحديدحجم البرنامج فى أوله عن طريق تحديد نوعه ما بين صغير ، كبير ، متوسط ، كبير جدا .
أنواع العنونه :-
-----------------
1 - عنونه فعليه (حقيقيه) Phsical Addressing :-
-------------------------------------------------------------
وهىالعنونه الحقيقيه التى يتم التعامل بها بين داخل الذاكره ، بمعنى لو أن الذاكره 128ميجا ، فإنها ستكون مرتبه ترتيبا تصاعديا من المكان صفر إلى المكان 128 ميجا ،نظام الهارد وير الفعلى على شريحة الذاكره يعمل بهذا النوع ( طبيعياً) .
مثال بالنظام السادس عشر ، على أساس الذاكره مثلا 1 ميجا ، فإنها بها مليونمكان يتم تحديدهم Decoding ب عشرين مكان ثنائى AF67B .
2 - عنونه تخيليه Logical Addressing :-
----------------------------------------------------
وهو النوع الذىتكلمت عنه بأعلى ، الذاكره مقسمه إلى أقسام Segments و كل قسم به محتوياته منالمكان Offset صفر إلى المكان 64 كيلو ، وهذا النظام يتم التعامل به من جانبالبروسسور مع نظام التشغيل و البرامج الأخرى و من ثم يكون المعالج مسؤلأ على تحويلهذا العنوان إلى العنوان الفعلى عن طريق عمليه حسابيه بسيطه وهى عن طريق
[أضربعنوان المقطع فى 10 و من ثم أضيف عليه ال Offset = العنوان الفعلى ]
مثال : [A100 : 9C00] المكان الأول هو عنوان المقطع و الثانى هو ال Offset داخل هذا المقطع، يتم التعامل بهذا النظام فعليا فى الأسمبلى و بهذه الطريقه بالظبط .
أنظمةعنونة وسائط التخزين المختلفه والوصول إلى القيم المستهدفه Operand (مسجلات و ذاكرهو ... ) :-
-------------------------------------------------------------------------------------------------------------------
1 - Impiled Mode :- (الصراحه الترجمه العربيه مخرفه معايا شويا ، نأسف لهذا العطل .. )
----------------------------
وهو لا يتم ذكر بهالعنوان و تكون التعليمه مفهومه للبروسسور بدون أى براميتارات إضافيه ،مثال : HLT هذه التعليمه سنتعرض لها فى جزء التعليمات .
2 - Immediate Mode :-
--------------------------------
ويتم ذكر العنوان صراحاً به ،مثال: ADD AX,1000B وهذه التعليمه ذكر بها القيمه صراحاً التى سيتم التعامل بها .
3 - Register mode :-
------------------------------
فى هذا النظامتكون القيمه المرادالتعامل معها فى مسجل Register ما ، لذلك يتم ذكر إسم المسجلبجانب التعليمه .
مثال : MOV AX,BX وهنا سيتم التعامل مع المسجلان المذكوران .
4 - Direct memory mode :-
-----------------------------------------
وهنا يتم ذكر العنوان فىالذاكره الذى يحتوى القيمه المستهدفه .
مثال : ADD AX,[1000:200A] حيث أننا نكتبالعنوان الذى يوجد به القيمه المستهدفه داخل التعليمه كما هو موضح .
5 - Indirect memory mode :-
-------------------------------------------
وهنايكون عنوان القيمه فى الذاكره موجود بداخل مسجل و فيها يأخذ المعالج القيمه التى فىالمسجل و تكون هى عنوان الذاكره الذى يحتوى على القيمه .
مثال : add BX,[SI] .
ملاحظه : المسجلات التى من الممكن إستخدامها فى هذا النظام 4 وهما BX , SI , BP , DI
ــــــــــــــــــــــــــــــــــــــــــــــــــ
ــــــــــــــــــــــــــــــــــــــــــــــــــ
ــــــــــــــــــــــــــــــــــــــــــــــــــ
ــــــــــــــــــــــــــــــــــــــــــــــــــ ــ
1 تعليمات الأسمبلى Assemply Instructions :-
-------------------------------------------------
-------------------------------------------------
CODE
clc ; فقط أمر بدون وسائط
dec ax ; وسيطة واحدة فقط
mov cx,dx; وسيطتين
dec ax ; وسيطة واحدة فقط
mov cx,dx; وسيطتين
-----------------------------------
1. بيانات فورية (مباشرة) (أي ثابته) مثال : 10 / 30 / 'a'
2. مسجل مثال : AX / EAX / BL
3. موقع ذاكره (يتم تحديده عن طريق العنوان) مثال : [200] / [bx] / [100]
4.متغير (وهو نفس السابق لكن بدل أن تحفظ أو تحسب العنوان يدوياً يقومالأسمبلر بأستبدال المتغير برقم يدل على عنوانه ) مثال : count / VAR1 / INTVAL / STR1
مدخل الى الديبغر Debugge :-
------------------------------------
ها قد وصلنا الى واحد من أقوىالبرامج المبيته في النظام فبواسطة اليبغ تستطيع عمل أشياء عجيبه وغريبه ، حسناًشغل الدوس وعند محث الأوامر أطبع debug ثم أنتر وستظهر لك علامه '-' ليل علىأستعداد الديبغر على أستقبال أوامرك .
الأن دعنا نكتب هذا البرنامجالصغير
CODE
mov ax,2 ; نقل العدد 2 كمعلومة مباشرة الى المسجل أي-أكس
mov bx,3 ; نقل العدد 3 كمعلومة مباشرة الى المسجل بي-اكس
add ax,bx ; جمع أي-اكي مع بي-اكس مع وضع الجواب في أي-اكس / أي-اكس=أي-أكس + بي-أكس
mov bx,3 ; نقل العدد 3 كمعلومة مباشرة الى المسجل بي-اكس
add ax,bx ; جمع أي-اكي مع بي-اكس مع وضع الجواب في أي-اكس / أي-اكس=أي-أكس + بي-أكس
--------------------------------
1. عند المحث '-' أدخل a100 أيأننا سنبدأ نكتب الكود من العنوان 100 ثم أضغط أنتر بالطبع
2. الآن أدخل كلتعليميه ثم أضغط أنتر ومع نهاية التعليمية الأخيرة أضغط أنتر مرتين .
الأنقم بأدخال الرمز R ثم أنتر لترى حالة المسجلاتلاحظ أن المسجل AX يساوي صفروسترى أيضاَ ظهور التعليميه MOV ax,0002 وهي التعليميه التي عليها الدور في التنفيذوليس المعلومة المنفذه ، الآن قم بطباعة الرمز T ثم أنتر لتنفيذ التعليميه التيعليها الدور هنا هي MOV AX,0002 سترى الآن أن المسجل AX أصبح يساوي 2 وهذا مانتوقعهبالضبط وسترى أيضاً التعليميع التي عليها دور التنفيذ وهي MOV BX,0003 أدخل الرمز T ثم أنتر لتنفيذها لترى أن المسجل BX أصبح يساوي 3 وسترى أيضاً التعليميه التي عليهاالدور في التنفيذ وهي ADD AX,BX قم بأدخال الرمز T لتنفيذها ولاحظ كيف أن المسجل AX أصبحت قيمته مجموع العددين 2+3 وهو خمسة بينما بقى المسجل BX يساوي 3 .
الآنبعدما عرفت كيف تكتب كود بسيط أخرج من الديبغر بالضغط على Q ثم أدخل مرة أخرىبكتابة الأمر Debug حتى تصفر المسجلات مرة أخرى أدخل التعليميه A100 ثم جرب تكتبكود من عندك ومع كل نهاية تعليميه أضغط أنتر وفي نهاية التعليميه الأخيرة أضغط أنترمرتين
( ملاحظة لترى شفرتك بلغة الآله والأسمبلي أدخل الرمز U ثم أنتر مباشرةبعد إدخال الكود وقبل إدخال الرمز R )
أضغط R ثم أنتر لترى المسجلات قبل تنفيذأي عملية ولترى التعليميه التي عليها الدور في التنفيذ أضغط T ثم أنتر لتنفذالتعليميه وترى النتائج والتعليميه التي بعدها وهكذا ولاتنسى أذا أردت أن تدخل كودجديد الخروج والعودة مرة أخرى الى الديبغر لتصفر المسجلات والذاكره
دورة الاسمبلي : الدرس الاول ما هي الاسمبلي - What is the assembly
ماهي الأسمبلي :-
-------------------
في قديم الزمان أيام بدايات الكمبيوتر كانت برمجة الكمبيوتر تتم بواسطة لغة الأله Machine Language أختصاراً ML ( لغة الآله هي اللغه التي تفهمها الآله مباشرة دون الحاجة الى تفسيروهي تخزن بصورة ثنائبة [ تركيبة من الأصفار والوحايد] في الذاكرة على شكل تعليماتووسائط تأخذ كل واحد منها عادة مقدار 8بت=ا بايت ) وكان هذا النوع من البرمجة صعبجداً عندها طور المبرمجون أول لغة برمجة وهذه اللغه فكرتها بسيطة جداً حيث أنه بدلأن تكتب رموز الآله يتم كتابة كلمات مختصره تدل على نوع العمليه مثال ( MOV,ADD,CMP ) ثم ببرنامج بسيط يتم تحويل هذه الشفرة الى لغة الآله بأستخدام تخطيطواحد-الى-واحد أي أن كل سطر أو عبارة في الأسمبلي تحول الى تعليمة واحدة مقابله فيلغة الآله (مثال بدل كتابة 011000000000101 يتم كتابة mov al,5 ) يعرف البرنامجالذي يقوم بعملية التحويل بالأسمبلر Assembler ، علماً بأن هناك عدة أنواع منالأسمبلر كل نوع يختص بتقنية معينة وبعائلة معينه من المعالجاتونحن هنا بصدد تعلم البرمجة بالأسمبلي للمعالجات المبنية على تقنية IBM-PC والمنتجة من شركة أنتلوهي العائلة 86×80 ويرمز لها أختصاراً X86 وهي تضم :
( 8086 / 8088 / 80186 / 80286 ) لمعالجات ال 16 بت و ( 80386 / 80486 / 80586=بنتنيوم1 / 80686=بنتنيوم2 / 80786=بنتنيوم3 / 80886=بنتنيوم4 ) لمعالجات ال 32 بت وسوف أتطرق في دروس متقدمةالى المعالج أتنيوم 64 بت المبني بتقنية جديده كلياً لمن يرغب بمعرفة مسبقة لهذاالمعالج الجديد كذلك سوف أتطرق بأذن الله الى الكروس أسمبلر وهي مجموعة برامج خاصةمصممه للتحويل من لغة أسمبلي لعائلة معالجات معينة الى عائله أخرى . تعريف لغة الأسمبلي الأسمبلي هي لغة برمجة تتكون من سلسلة من التعليمات المتتابعةكل تعليمة فيها تحول الى تعليمة مقابلة بلغة الآله . تعريف الأسمبلر :-
-----------------
الأسمبلر هو برنامج يقوم بتحويل التعليمات المكتوبةبلأسمبلي الى لغة الآله . لماذا أريد أستخدام الأسمبلي :-
---------------------------------
بتعلمك لغة الأسمبلي فأنك تكشف النقابعن الأسرار المختفيه وراء الكمبيوتر وتصبح قادراً على الفهم تماماً كيف يعملالمعالج وكيف يعمل البرنامج وبذلك تزيد خبرتك كمبرمج وبالطبع فأن الأسمبلي أقوى مناللغات العالية المستوى في التعامل مع العتاد وتعطيك مرونة عالية وقدرة وصول الىأشياء لم تكن تستطيع الوصول اليها من قبل ، كذلك هناك نوعيات من البرامج لايمكن الابرمجتها بالأسمبلي مثل الدرايفات(سواقات) الأجهزه ، كذلك فأن الأسمبلي يعطيط برامجسريعة جداً ، وبالطبع فأن بناء برنامج متطور بالأسمبلي أشبه بحفر حفرة بواسطةالملعقه فالبرغم أنك تحفر الا أنك أنتاجيتك قليله ولكن من المحبذ جداً برمجة بعضالدوال و الأحزاء من البرامج بالأسمبلي وبقية البرنامج بواسطة لغة عالية المستوىمثل السي++ .
-------------------
في قديم الزمان أيام بدايات الكمبيوتر كانت برمجة الكمبيوتر تتم بواسطة لغة الأله Machine Language أختصاراً ML ( لغة الآله هي اللغه التي تفهمها الآله مباشرة دون الحاجة الى تفسيروهي تخزن بصورة ثنائبة [ تركيبة من الأصفار والوحايد] في الذاكرة على شكل تعليماتووسائط تأخذ كل واحد منها عادة مقدار 8بت=ا بايت ) وكان هذا النوع من البرمجة صعبجداً عندها طور المبرمجون أول لغة برمجة وهذه اللغه فكرتها بسيطة جداً حيث أنه بدلأن تكتب رموز الآله يتم كتابة كلمات مختصره تدل على نوع العمليه مثال ( MOV,ADD,CMP ) ثم ببرنامج بسيط يتم تحويل هذه الشفرة الى لغة الآله بأستخدام تخطيطواحد-الى-واحد أي أن كل سطر أو عبارة في الأسمبلي تحول الى تعليمة واحدة مقابله فيلغة الآله (مثال بدل كتابة 011000000000101 يتم كتابة mov al,5 ) يعرف البرنامجالذي يقوم بعملية التحويل بالأسمبلر Assembler ، علماً بأن هناك عدة أنواع منالأسمبلر كل نوع يختص بتقنية معينة وبعائلة معينه من المعالجاتونحن هنا بصدد تعلم البرمجة بالأسمبلي للمعالجات المبنية على تقنية IBM-PC والمنتجة من شركة أنتلوهي العائلة 86×80 ويرمز لها أختصاراً X86 وهي تضم :
( 8086 / 8088 / 80186 / 80286 ) لمعالجات ال 16 بت و ( 80386 / 80486 / 80586=بنتنيوم1 / 80686=بنتنيوم2 / 80786=بنتنيوم3 / 80886=بنتنيوم4 ) لمعالجات ال 32 بت وسوف أتطرق في دروس متقدمةالى المعالج أتنيوم 64 بت المبني بتقنية جديده كلياً لمن يرغب بمعرفة مسبقة لهذاالمعالج الجديد كذلك سوف أتطرق بأذن الله الى الكروس أسمبلر وهي مجموعة برامج خاصةمصممه للتحويل من لغة أسمبلي لعائلة معالجات معينة الى عائله أخرى . تعريف لغة الأسمبلي الأسمبلي هي لغة برمجة تتكون من سلسلة من التعليمات المتتابعةكل تعليمة فيها تحول الى تعليمة مقابلة بلغة الآله . تعريف الأسمبلر :-
-----------------
الأسمبلر هو برنامج يقوم بتحويل التعليمات المكتوبةبلأسمبلي الى لغة الآله . لماذا أريد أستخدام الأسمبلي :-
---------------------------------
بتعلمك لغة الأسمبلي فأنك تكشف النقابعن الأسرار المختفيه وراء الكمبيوتر وتصبح قادراً على الفهم تماماً كيف يعملالمعالج وكيف يعمل البرنامج وبذلك تزيد خبرتك كمبرمج وبالطبع فأن الأسمبلي أقوى مناللغات العالية المستوى في التعامل مع العتاد وتعطيك مرونة عالية وقدرة وصول الىأشياء لم تكن تستطيع الوصول اليها من قبل ، كذلك هناك نوعيات من البرامج لايمكن الابرمجتها بالأسمبلي مثل الدرايفات(سواقات) الأجهزه ، كذلك فأن الأسمبلي يعطيط برامجسريعة جداً ، وبالطبع فأن بناء برنامج متطور بالأسمبلي أشبه بحفر حفرة بواسطةالملعقه فالبرغم أنك تحفر الا أنك أنتاجيتك قليله ولكن من المحبذ جداً برمجة بعضالدوال و الأحزاء من البرامج بالأسمبلي وبقية البرنامج بواسطة لغة عالية المستوىمثل السي++ .
دورة الاسمبلي - ASSEMBLY
هذا الدرس هو أساس لغة الأسمبلى و تعتبر المواضيع التى ستناقش به هى أساس لغةالأسمبلى خاصا و أساس لغات الكمبيوتر عاماً ،،أعزرونى أنه جاء متأخرا والشكر الخاص للأستاذ / إبراهيم صالح الذى له الفضل فى تذكيرى بهذه المواضيع المهمه، شكرا لك يا أخى
سنبدأ بإذن الله و سنناقش المواضيع الأتيه :-
---------------------------------------------
- ما هو 0 و 1 (اللغه الثنائيه) ؟
- ما هى حقيقة وحداتالتخزين داخل الكمبيوتر (المسجلات و الذاكره) ؟
- كيف يتم تناقل البيانات بينهذه الوحدات و بعضها البعض و بينها و بين المعالج ؟
- مما يتركب المعالج ؟؟
- البيانات و أنواعها ،،
- كيف تتم معالجة البرامج و تعليماتها؟؟
- كيف يقومالمعالج بتنفيذ تعليمه ما ؟ملاحظه : لأهمية هذه الموضوعاتيرجى الرجوع إلى الدروس السابقه و إلى المصادر المتاحه للأسمبلى و لبنية المعالجاتو تركيبها Computer organization and structure بسم الله،،
----------------------------------------------------------------------------------------------------------------------------------------
هذه القيم تعبر عن معنى كلمة يوجد و لا يوجد - صح أم خطأ - أسود أم أبيض - و تعبر عنها فى علوم الإلكترونيات بوجود جهد كهربى علىسلك ما أم لا يوجد ، بمعنى هناك سلك واحد نحاس مثلا و عليه فرق جهد بالنسبه للأرضى، فنقول هنا أن هذا السلك به فولت و يحمل القيمه 1 ، هذا السلك نسميه فىالإلكترونيات (بت) ، 8 اسلاك بجانب بعضهم نطلق عليهم (بايت) .
أما فىحالة عدم وجود به فولت فإنه يمثل القيمه 0بهذه الطريقه يمكن لمجموعهمن الأسلاك متجاوره و منعزله عن بعضها البعض أن تمثل قيمه مثلا 10101 وهذا يعبر عنخمس أسلاك الأول به فولت و الثانى لا يوجد به و الثالث يوجد به و الرابع لا يوجد بهو الخامس يوجد به فولت .
طيب فكر معى أخى ما هى إحتمالات هذه الأسلاك أنتحمل قيم (بمعنى ما هو عدد الإحتمالات الغير متكرره التى يمك أن تمثلها هذه السلاكالخمسه ؟؟)
سنجد أنها 32 إحتمال من 00000 إلى 11111 و هو ما يعبر عن 2 ^ 5
مثال بسيط ، بالنظام العشرى الطبيعى الذى نعمل بهجميعا (الرقم الواحد إحتماله أن يكون 10 قيم من 0 إلى 9 ) فمثلا لو عندنا رقم مكونمن 5 أماكن فما هى عدد الأرقام التى يمكن أن تمثل بهذه الأماكن الخمسه - على حسبالقانون السابق نجد أنها (10^5 = 100000 إحتمال) (من 00000 إلى 99999) ، فعلاالقانون صحيح ....
من هذا المثال السابق يتبين لنا طريقة حساب عدد القيمالتى يمكن أن يمثلها مجموعه من الأماكن (الأسلاك) فى أى نظام عددى (ونحن نتحدث هناعن النظام الثنائى) .
تدريب : ما هو عدد القيم التى يمكن تمثيلهاب8 أسلاك (بايت) و 16 سلك (2 بايت) و 32 سلك (4 بايت)
الإجابه :
8 بت >>> 2 ^ 8 = 256 إحتمال
16بت >>> 2 ^ 16 = 65536 إحتمال
32 بت >>> 2 ^ 32 = 4294967296 إحتمال (وهو ما يمثل 4جيجا من وحدات الكمبيوتر)
باقى أن نذكر أن هذا النظام هو المتبع فى جميعالأجهزه الإلكترونيه و الكمبيوتريه و الألات الحاسبه التى يطلق عليها (أجهزه رقميه) Digital Divices
----------------------------------------------------------------------------------------------------------------------------------------
وحدات التخزين فىالحقيقه تعتبر مجموعه من السلاك المتجاوره مع بعضهم و منعزلين عن بعضهم ، معإمكانية أن كل قيمه على أى سلك يمكن تغييرها من 1 إلى 0أنظر أخىالكريم إلى هذا المثال :-
----------------------------------
أنظرداخل جهازك ، ستجد أن الهارد ديسك Hard Disk موصل بكابل بيانات Data Cable وهو مكونمن 40 سلك 40 Bin فى أغلب الأحيان ، هذه الأسلاك هى المسؤاله عن نقل البيانات التىتجدها أمامك على الشاشه الأن من الهارد ديسك إلى المعالج عبر مسارات اللوحه الأم .
لو تسنى لك النظر إلى اللوحه الأم Mother Board من الخلف ستجد عدةمسارات متوازيه و بجانب بعضها تصل بين الذاكره Ram وبين المعالج Processor
تتفقجميع وحدات التخزين فى قدرتها على تمثيل 0 أو 1 و هذا على حسب حجم الوحدهوتختلف وحدات التخزين فى طبيعة هذه القدرهونناقش هذا سويا هنا،
------------------------
المسجلات Registers :- تتكون من مجموعاتمنطقيه بجانب بعضها يمكن للمجموعه الواحده تمثيل بت ( 0 أو 1) (فولت أو لا فولت) وتطلق على المجموعه Flip Flop وهو مركب من وحدات منطقيه اصغر Logic Gates يستطيعالإحتفاظ بالقيم التى بداخله طوال تغذيته بالفولت ،ماذا تعنى كلمة (طوالتغذيته بالفولت) ؟؟تعنى أن أى مكون كهربى داخل أى جهاز يحتاج لمصدرأساسى للكهرباء وهذا ما يمكنه من التمييز بين 0 أو 1 ، بمعنى أن المسجل يكون موصلبهذا المصدر الأساسى VCC حتى لو ان القيمه التى تحملها أطرافه 0000000 و هذاوحدات الذاكره Ram :-بدون التوغل فى تفاصيل - تتركب من مكوناتشبيهه بالمسجلات أو بمكثفات و لها أنواع عده و لكنها هذه الأنواع التى تحتاج إلىمصدر كهربى اساسى للحفاظ على القيم داخلها كما هو الحال بالمسجلات .
الاقراص الصلبه Hard Disks :- يمكن تمثيل البيانات عليها على هيئةسطوح قابله للمغنطه ، كل سطح مكون من مسارات ، كا مسار مكون من قطع ، كل قطع مكونمن وحدات صغيره فأصغر ، أصغر وحده هى النقطه و هذه النقطه يمكن تغيير خاصيتهاالمغناطيسيه من (توجد مغنطه أم لا يوجد) و هذا ما يهمنا أنه يمكن تمثيل الوحداتالثنائيه بهذه الطريقه ، و الجديدر بالذكر هنا أن وحدات التخزين التى تعتمد على هذهالطريقه لا تحتاج إلى مصدر كهربى للحفاظ على البيانات التى على سطوحهاطيب سؤال :لماذا إذن نوصلها بكابل طاقه Power Source عند تشغيلها ،الإجابه : لا ننسى أخوتى الأعزاء أنه يوجد موتور كهربى بالداخل و أجزاءميكانيكيه أخرى تحتاج بطبيعتها إلى المصدر الكهربى بالإضافه إلى الوحدات المنطقيه والمسجلات التى تنقل البيانات من و إلى كابل البيانات Data Cables .
نعودللمسجلات ثانيا و هى أهم وحده نتعامل معها فى الأسمبلى ،تكون المسجلاتموصله ببعضها و بعض و تصل مباشرا بالمسار الرئيسى للبيانات و المسار الرئيسى للتحكم Data Bus and Control Bus .
تعتبر مسجلات المعالج AX , BX , ....... هى من أهممكونات المعالج ،معظم المسجلات تحتوى - بالإضافه إلى وحدات تخزين البياناتداخلها Flip Flops - على بينات Bins للتحكم بالبيانات من و إليها فمثلا :-
- تحتوى على بن bin للقراءه
- تحتوى علىبن للكتابه
- تحتوى على بن تصفيير ( جعل القيمه التى يحملها صفر)
- تحتوى علىبن ذياده ( ذيادة القيمه الى بداخلها بمقدار 1 )وهكذا ..... و تتيحبنات التحكم هذه للمعالج التحكم بالبيانات الخاصه بكل مسجل على حده ، و سنرى هذهالإمكانيه فى موضوع كيفية نقل البيانات داخل الكمبيوتر .
الجدير بالذكر هناأيضا ، أن أى وحدة تخزين لها بنات تحكم مشابهه Control Bins بما فيهم الذاكره والمسجلات و القرصات الصلبه و المرنه و .....
----------------------------------------------------------------------------------------------------------------------------------------
يوجد على اللوحه الأمثلاث مسارات رئيسيه و لا يخلوا منها جهاز كمبيوتر منذ أخترع الكمبيوتر إلى الأنوهما :-
1 - Data Bus
وهو المسار الذى يتم نقل البياناتعليه و يختلف عرض هذا المسار من معالج إلى الأخر (أو بمعنى أصح وأدق - من جيل إلىآخر) ، الجدير بالذكر هنا هو أن المسار يتكون من عدة أسلاك بجانب بعضها البعض و هناتستخدم لنقل البيانات من و إلى مكونات الكمبيوتر (المعالج - الذاكره - أجهزةالإخراج و الإدخال ) ، يكون كل من هذه المكونات موصل مباشرا بهذا المسار،عرض هذا المسار دائما يتساوى مع عرض مسجلات المعالج و عرض الذاكره(بمعنى أن الأجهزه القديمه 16 بت ، كان عرض كل مسجل 16 بت و عرض الذاكره 16 بت وعرضمسار البيانات Data Bus 16 بت أيضا ، وبنفس الطريقه مع 32 بت و 64 بت الذى ظهرقريبا)
2 - Address Bus
هذا المسار مسؤول على حمل قيمالعناوين و هو يمثل (الورقه التى تكون بيدك عندما تذهب لتبحث عن بيت الرجل الذىيريده والدك و كتب لك العنوان بهذه الورقه)
يتصل بهذا المسار المعالج (الذىيكتب العناوين) ووحدات التخزين القابله للعنونه (الذاكره و المسجلات و أجهزةالإدخال و الإخراج )
الجدير بالذكر هو أن عرض هذا المسار يحدد كميةالذاكره التى يمكن ان يدعمها النظام ، فمثلا فى المعالجات 8086 كان عرض هذا المسار 20 بت ، إذن عدد الإحتمالات التى يمكن أن تمثل على هذا العدد و هو يعبر عن الأماكنالتى يمكن عنونتها بإستخدامه = 2 ^ 20 = 1 ميجا ذاكرهتدريب : ما هواقصى حجم ذاكره يمكن أن يدعمه جهازك الحالى إذا علمت أن عرض هذا المسار 32 بت؟؟؟
3 - Control Bus
وهو المسار التى ترسل عليه إشارات التحكمالتى تكلمنا عليها فى الجزء الثانى من هذا الدرس ،،، ويكون هذا المسار متصل به كلمكونات الكمبيوتر و ذلك ليمكن التحكم بالبيانات من جانب المعالج ،،إذنكيف يمكن نقل البيانات ،،
-------------------------------
لوإفترضنا ان المعالج ينفذ التعليمه MOV AX,[1000] :والتى معناها "إنقل محتوياتالمكان بالذاكره المعنون ب 1000 داخل مقطع البيانات الحالى إلى المسجل AX
يقومالمعالج بحساب العنوان الحقيقى من العنوان 1000 فى التعليمه و عنوان المقطع (راجعجزء العنونه فى دروس الأسمبلى) و يقوم بوضع الناتج فى مسجل العناوين Address Register وهو المسجل المسؤول عن العناوين ، ثم يرسل المعالج إشارة قراءه من الذاكره، ستقوم دوائر البحث فى الذاكره بالبحث عن هذا العنوان المسجل فى مسجل الذاكره AR ومن ثم تحميل ما يحتويه هذا المكان على مسار البيانات Data Bus ، فى نفس الوقت يكونالمعالج قد أرسل رسالة كتابه فى المسجل AX ومن ثم تنتقل البيانات التى على مسارالداتا (والتى خرجت من الاذكره لتوها) إلى المسجل و بهذا تكون التعليمه تم تنفيذهاوبهذه الطريقه يتم نقل البيانات جميعها عبر مكونات الكمبيوتر ، ونلخص هذا فى الخطوات الأتيه :-1 -
تحديد عنوان مكان البيانات المستخدمهفى التعليمه الحاليه .
2 - تحديد المكان الذى سيتم إرسال البيانات له و من ثمفتح بن الكتابه به .
3 - تكون البيانات متاحه على مسار البيانات والتى ستنتقلإلى المكون المفتوح لديه بن الكتابه حاليا.
يقوم المعالج بالتحكم فى مسار هذهالإشارات و التحكم بها و موازنة كل خطوه من الخطوات السابقه Syncronization لينتجلك ما تعمل عليه الأن
----------------------------------------------------------------------------------------------------------------------------------------
.
يتركبالمعالج من الأتى :-
---------------------------
- المسجلات
- وحدة الحساب و المنطق
- المسارات المختلفهبداخله و التى تحدثنا عنها سابقا
- باقى المكونات الأخرى ....
----------------------------------------------------------------------------------------------------------------------------------------
- كما لابدأن تعلم أخى/أختى الكريم/الكريمهأن كل ما هو مخزن على وحدات التخزين المختلفه فى الحاسبتكون محزنه على هيئة 0 و 1 و تكون فيما بينها مجموعه من (البيانات والتعليمات)
- فمثلا ، ملفات ال txt تحتوى على بيانات ، ملفات ال doc تحتوى على بيانات ، ملفات exe تحتوى على تعليمات و بيانات ، ملفات لل dll تحتوى علىتعليمات فقط و هكذا
- تتواجد التعليمات عادة فى الملفات التنفيذيه ومكتبات التشغيل (exe , dll , ocx , com , bin)
- يمكن التفريق بينالبيانات و التعليمات بإستخدام الحقائق الأتيه :-+ الملفات التشغيليه تحتوى على أكواد تعليمات معلومه لدىالمعالج و نظام المعالجه ككل .
+ الملفات التشغيليه لها إمتدادات معروفه (ocx , dll , exe , ....) .
+ الملفات التنفيذيه لها تركيب معين ، كل البرامج العاملهأمامك الأن لها نفس التركيب ،ملحوظه :لذيادة المعرفه حول تركيب الملفاتالتنفيذيه من الأنواع (exe , com) ، يرجى قراءة دروس Xacker فى موضوع صناعةاليروسات.
+ فيما عدا ذلك ، يعتبره نظام التشغيل بيانات .مثال : -برنامجبسيط يقوم بطباعة رسالة hello على الشاشه ومن ثم ينتظر لأن يضغط المستخدم على حرفمن لوحة المفاتيح "Press Any Key To Exit" لينتهى البرنامج ،
-------- التحليل ---------
- هذا البرنامج مكون من التعليمات الأتيه :+ تحضير لبدأ البرنامج و ذلك بتحميل مسجلالمقطع بعنوان مقطع الكود للبرنامج .
+ تعليمات الطباعه على الشاشه .
+ تعليمات إنتظار حرف من وحدة الإدخال (لوحة المفاتيح KeyBoard) .
- ويحتوى على البيانات الأتيه :
+ النص "Hello" .
+ النص "Press Any Key To Exit"
-------- نهاية التحليل ---------
- البياناتممكن أن تكون صور ، ألوان ، أصوات ، نصوص ، نصوص مشكله ، بيانات مبهمه ......
- يمكن التفريق بين أنواع البيانات المختلفه (بالنسبه لنظام التشغيل) :-
+ إمتداد الملف نفسه الذى يحتوى على البيانات .
+ تركيبالملف نفسه الذى يحتوى على البيانات .
+ أن تكون البيانات التى بداخل الملف لهاصيغ مفهومه للبرنامج المشغل لها و إلا سيقوم بإضهار رسالةخطأللمذيد عن تركيب الملفات ، يرجى زيارة المواقع الأتيه :-
http://www.onicos.com/staff/iz/formats
http://whatis.techtarget.com/fileFormatA
http://myfileformats.com/
- لا يمكن للبيانات أنيكون لها أهميه إلا بوجود التعليمات (البرامج المشغله) .
- لا يمكن للبرامج أنتكون لها فائده إلا بتعاملها و معالجتها للبيانات المختلفه .
- أى برنامج يتكونمن جزء بيانات Data Segment وجزء تعليمات Code Segment .
Each program must consist from some code Instructions and some data blocks
كيف تتم معالجة البرامج و تعليماتها؟؟
- نظام التشغيل هو المسؤول عن تحضيرالملفات التنفيذيه و إختبار صحة تركيبها و من ثم تكون البرامج جاهزه للتحميل علىالذاكره .
- لا يتعامل المعالج مع الأقراص الصلبه مباشراً ، فالمعالج لايعرف إلا الذاكره و المسارات و المسجلات وفقط ،
- نظام التشغيل المسؤول عنتحميل البرامج فى الذاكره و إصدار الأمر للمعالج بأن يبدأ بتنفيذ تعليمات البرنامج .
- علمتم أخوتى من القسم السابق (البيانات و أنواعها) فإن كل برنامج يتكونمن تعليمات و بيانات ، وكل نوع من الملفات له الصيغه المعروفه من جانب نظام التشغيل، حيث يقوم نظام التشغيل بتحميل هذه التعليمات و البيانات فى الذاكره ومن ثم يسلمالمعالج زمام الأمور لتنفيذ هذه التعليمات .
- يحتوى المعالج على مسجل مقطع، يكتب به عنوان مقطع الكود الحالى بالذاكره والذى قام نظام التشغيل بتحميلها فيه .
- يحتوى المعالج على مسجل مقطع يحتوى بداخله على عنوان مقطع البياناتالحلى فى الذاكره و الذى قام نظام التشغيل بتحميله به .
- يحتوى المعالج علىمسجل يوضع به عنوان التعليمه بالذاكره التى عليها الدور فى التنفيذ .
خطوات تنفيذ أى برنامج :-
-----------------------------
1 - يتأكد نظام التشغيل منأن تركيبة الملف التنفيذى سليمه و معروفه (ملفات ال exe مثلا تركيبها غير معروف لدىنظام التشغيل لينوكس لذا لا يستطيع التعامل معها ولا تشغيلها إلا بإضافة مفسرات لها )
2 - يقوم نظام التشغيل بقراءة نوع الملف من ناحيت إحتياجاته للذاكره (توجد عدة أنواع تختلف فى عدد مقاطع الداتا و الكود الذى سيحتاج إليها البرنامج ويكون المبرمج مسؤول أو لغة البرمجه العالية المستوى مسؤوله عن كتابة هذه الأنواع فىأول البرنامج) - إنتظر دروس الأسمبلى القادمه ، سوف اشرح هذا الجزء برمجيا بالتفصيل
3 - يقوم نظام التشغيل بالبحث لديه فى الذاكره على المقاطع الفارغه ، فإنلم يجد مساحه كافيه لتحميل البرنامج و بياناته ، فإنه يصدر رسالة خطأ .
4 - يقوم نظام التشغييل بتحميل تعليمات البرنامج و بياناته (لو وجدوا فى ملف واحد - بمعنى أنه يمكن لبرنامج أن يضع بياناته الأساسيه بجانبه فى ملف منفصل و من ثم يقومالبرنامج نفسه بطلب تحميلها بعد ذلك) .
5 - تحميل كل من مسجلات المقاطع ومسجل التعليمات Instruction Register IR بالقيم المطلوبه ، والجدير بالذكر هنا أنمسجل التعليمات يتم تصفيره فى حالة بدأ تشغيل برنامج جديد وذلك لأن أو تعليمه فىالبرنامج يجب أن توضع فى المكان صفر من مقطع الكود بالذاكره .
6 - يبدأالمعالج بأخذ أول تعليمه والمقابله للعنوان صفر داخل مقطع الكود و يقوم بتنفيذهاومن ثم يزيد قيمة مسجل التعليمات بواحد (IR = IR +1) وذلك للتعليمه الأتيه وهكذاحتى يصل إلى تعليمة التى تسلم نظام التشغيل التحكم ثانياً .
7 - الجديربالذكر أن نظم التشغيل الحديثه لا تترك للمعالج (البرنامج) السيطره الكامله علىالجهاز و مكوناته و لكن تختبر حالة البرنامج كل وقت معين و ذلك للتأكد من أنه يعملبحاله جيده و لا يسبب أخطاء أو تلف للعتاد (تتذكر أنه فى الدوس لو قمت بكتابةبرنامج صغير يدخل فى دوره لا نهائيه Infinite Loop و قمت بتشغيله على الدوس ، لنتسطيع أن توقف البرنامج إلا بعمل إعادة تحميل للجهاز كله Restart ) .
8 - معظم نظم التشغيل الحديثه تقوم بتغيير تعليمات البرنامج و ذلك لجماية مكونات الجهازالحقيقيه من الوصول المباشر لها .
كيف يقوم المعالج بتنفيذ تعليمه ما ؟
- كل تعليمه لها تركيب ثنائى مختلف عن الباقى ، ومنثم يستطيع المعالج التمييز بين كل تعليمه و أخرى .
- يدخل التركيب الثنائىعلى المعالج لتفسيرها ومن ثم تنفيذها مباشراً ،
- مثال :-دعنا نتخيل أن القيمه (01110) هى المقابله للتعليمه ADD AX,BX ،
+ إذن عند وصول القيمه (01110) إلى المعالج للتنفيذ ، فإن مكونات المعالجالمنطقيه تقوم بإدخال محتويات المسجل BX و المسجل AX على وحدة الحساب والمنطق
+ و من ثم تشغيل Activate عملية الجمع داخل وحدة الحساب و المنطق ALU
+ تكون وحدة الحساب و المنطق موصله بمسار البيانات ، فيتم كتابة الناتج علىالمسار ،
+ ومن ثم فتح بن Bin الكتابه على المسجل AX و بهذا يكون تم إنهاءتنفيذ هذه التعليمه .
+ وبنفس الطريقه يتم تنفيذ كل التعليمات و لكن النظرهالسابقه بسيطه جدا عن الواقع
سنبدأ بإذن الله و سنناقش المواضيع الأتيه :-
---------------------------------------------
- ما هو 0 و 1 (اللغه الثنائيه) ؟
- ما هى حقيقة وحداتالتخزين داخل الكمبيوتر (المسجلات و الذاكره) ؟
- كيف يتم تناقل البيانات بينهذه الوحدات و بعضها البعض و بينها و بين المعالج ؟
- مما يتركب المعالج ؟؟
- البيانات و أنواعها ،،
- كيف تتم معالجة البرامج و تعليماتها؟؟
- كيف يقومالمعالج بتنفيذ تعليمه ما ؟ملاحظه : لأهمية هذه الموضوعاتيرجى الرجوع إلى الدروس السابقه و إلى المصادر المتاحه للأسمبلى و لبنية المعالجاتو تركيبها Computer organization and structure بسم الله،،
----------------------------------------------------------------------------------------------------------------------------------------
ما هى حقيقة ال 0 و 1 (للغه الثنائيه) ؟؟
أما فىحالة عدم وجود به فولت فإنه يمثل القيمه 0بهذه الطريقه يمكن لمجموعهمن الأسلاك متجاوره و منعزله عن بعضها البعض أن تمثل قيمه مثلا 10101 وهذا يعبر عنخمس أسلاك الأول به فولت و الثانى لا يوجد به و الثالث يوجد به و الرابع لا يوجد بهو الخامس يوجد به فولت .
طيب فكر معى أخى ما هى إحتمالات هذه الأسلاك أنتحمل قيم (بمعنى ما هو عدد الإحتمالات الغير متكرره التى يمك أن تمثلها هذه السلاكالخمسه ؟؟)
سنجد أنها 32 إحتمال من 00000 إلى 11111 و هو ما يعبر عن 2 ^ 5
(أى إحتمال قيم السلك الواحد ^ عدد الأسلاك = إحتمال القيم علىكل السلاك)
من هذا المثال السابق يتبين لنا طريقة حساب عدد القيمالتى يمكن أن يمثلها مجموعه من الأماكن (الأسلاك) فى أى نظام عددى (ونحن نتحدث هناعن النظام الثنائى) .
تدريب : ما هو عدد القيم التى يمكن تمثيلهاب8 أسلاك (بايت) و 16 سلك (2 بايت) و 32 سلك (4 بايت)
الإجابه :
8 بت >>> 2 ^ 8 = 256 إحتمال
16بت >>> 2 ^ 16 = 65536 إحتمال
32 بت >>> 2 ^ 32 = 4294967296 إحتمال (وهو ما يمثل 4جيجا من وحدات الكمبيوتر)
باقى أن نذكر أن هذا النظام هو المتبع فى جميعالأجهزه الإلكترونيه و الكمبيوتريه و الألات الحاسبه التى يطلق عليها (أجهزه رقميه) Digital Divices
----------------------------------------------------------------------------------------------------------------------------------------
- ما هى حقيقة وحدات التخزين داخل الكمبيوتر (المسجلات و الذاكره) ؟
----------------------------------
أنظرداخل جهازك ، ستجد أن الهارد ديسك Hard Disk موصل بكابل بيانات Data Cable وهو مكونمن 40 سلك 40 Bin فى أغلب الأحيان ، هذه الأسلاك هى المسؤاله عن نقل البيانات التىتجدها أمامك على الشاشه الأن من الهارد ديسك إلى المعالج عبر مسارات اللوحه الأم .
لو تسنى لك النظر إلى اللوحه الأم Mother Board من الخلف ستجد عدةمسارات متوازيه و بجانب بعضها تصل بين الذاكره Ram وبين المعالج Processor
تتفقجميع وحدات التخزين فى قدرتها على تمثيل 0 أو 1 و هذا على حسب حجم الوحدهوتختلف وحدات التخزين فى طبيعة هذه القدرهونناقش هذا سويا هنا،
------------------------
المسجلات Registers :- تتكون من مجموعاتمنطقيه بجانب بعضها يمكن للمجموعه الواحده تمثيل بت ( 0 أو 1) (فولت أو لا فولت) وتطلق على المجموعه Flip Flop وهو مركب من وحدات منطقيه اصغر Logic Gates يستطيعالإحتفاظ بالقيم التى بداخله طوال تغذيته بالفولت ،ماذا تعنى كلمة (طوالتغذيته بالفولت) ؟؟تعنى أن أى مكون كهربى داخل أى جهاز يحتاج لمصدرأساسى للكهرباء وهذا ما يمكنه من التمييز بين 0 أو 1 ، بمعنى أن المسجل يكون موصلبهذا المصدر الأساسى VCC حتى لو ان القيمه التى تحملها أطرافه 0000000 و هذاوحدات الذاكره Ram :-بدون التوغل فى تفاصيل - تتركب من مكوناتشبيهه بالمسجلات أو بمكثفات و لها أنواع عده و لكنها هذه الأنواع التى تحتاج إلىمصدر كهربى اساسى للحفاظ على القيم داخلها كما هو الحال بالمسجلات .
الاقراص الصلبه Hard Disks :- يمكن تمثيل البيانات عليها على هيئةسطوح قابله للمغنطه ، كل سطح مكون من مسارات ، كا مسار مكون من قطع ، كل قطع مكونمن وحدات صغيره فأصغر ، أصغر وحده هى النقطه و هذه النقطه يمكن تغيير خاصيتهاالمغناطيسيه من (توجد مغنطه أم لا يوجد) و هذا ما يهمنا أنه يمكن تمثيل الوحداتالثنائيه بهذه الطريقه ، و الجديدر بالذكر هنا أن وحدات التخزين التى تعتمد على هذهالطريقه لا تحتاج إلى مصدر كهربى للحفاظ على البيانات التى على سطوحهاطيب سؤال :لماذا إذن نوصلها بكابل طاقه Power Source عند تشغيلها ،الإجابه : لا ننسى أخوتى الأعزاء أنه يوجد موتور كهربى بالداخل و أجزاءميكانيكيه أخرى تحتاج بطبيعتها إلى المصدر الكهربى بالإضافه إلى الوحدات المنطقيه والمسجلات التى تنقل البيانات من و إلى كابل البيانات Data Cables .
نعودللمسجلات ثانيا و هى أهم وحده نتعامل معها فى الأسمبلى ،تكون المسجلاتموصله ببعضها و بعض و تصل مباشرا بالمسار الرئيسى للبيانات و المسار الرئيسى للتحكم Data Bus and Control Bus .
تعتبر مسجلات المعالج AX , BX , ....... هى من أهممكونات المعالج ،معظم المسجلات تحتوى - بالإضافه إلى وحدات تخزين البياناتداخلها Flip Flops - على بينات Bins للتحكم بالبيانات من و إليها فمثلا :-
- تحتوى على بن bin للقراءه
- تحتوى علىبن للكتابه
- تحتوى على بن تصفيير ( جعل القيمه التى يحملها صفر)
- تحتوى علىبن ذياده ( ذيادة القيمه الى بداخلها بمقدار 1 )وهكذا ..... و تتيحبنات التحكم هذه للمعالج التحكم بالبيانات الخاصه بكل مسجل على حده ، و سنرى هذهالإمكانيه فى موضوع كيفية نقل البيانات داخل الكمبيوتر .
الجدير بالذكر هناأيضا ، أن أى وحدة تخزين لها بنات تحكم مشابهه Control Bins بما فيهم الذاكره والمسجلات و القرصات الصلبه و المرنه و .....
----------------------------------------------------------------------------------------------------------------------------------------
- كيف يتم تناقل البيانات بين هذه الوحدات و بعضها البعض و بينها و بين المعالج ؟
1 - Data Bus
وهو المسار الذى يتم نقل البياناتعليه و يختلف عرض هذا المسار من معالج إلى الأخر (أو بمعنى أصح وأدق - من جيل إلىآخر) ، الجدير بالذكر هنا هو أن المسار يتكون من عدة أسلاك بجانب بعضها البعض و هناتستخدم لنقل البيانات من و إلى مكونات الكمبيوتر (المعالج - الذاكره - أجهزةالإخراج و الإدخال ) ، يكون كل من هذه المكونات موصل مباشرا بهذا المسار،عرض هذا المسار دائما يتساوى مع عرض مسجلات المعالج و عرض الذاكره(بمعنى أن الأجهزه القديمه 16 بت ، كان عرض كل مسجل 16 بت و عرض الذاكره 16 بت وعرضمسار البيانات Data Bus 16 بت أيضا ، وبنفس الطريقه مع 32 بت و 64 بت الذى ظهرقريبا)
2 - Address Bus
هذا المسار مسؤول على حمل قيمالعناوين و هو يمثل (الورقه التى تكون بيدك عندما تذهب لتبحث عن بيت الرجل الذىيريده والدك و كتب لك العنوان بهذه الورقه)
يتصل بهذا المسار المعالج (الذىيكتب العناوين) ووحدات التخزين القابله للعنونه (الذاكره و المسجلات و أجهزةالإدخال و الإخراج )
الجدير بالذكر هو أن عرض هذا المسار يحدد كميةالذاكره التى يمكن ان يدعمها النظام ، فمثلا فى المعالجات 8086 كان عرض هذا المسار 20 بت ، إذن عدد الإحتمالات التى يمكن أن تمثل على هذا العدد و هو يعبر عن الأماكنالتى يمكن عنونتها بإستخدامه = 2 ^ 20 = 1 ميجا ذاكرهتدريب : ما هواقصى حجم ذاكره يمكن أن يدعمه جهازك الحالى إذا علمت أن عرض هذا المسار 32 بت؟؟؟
3 - Control Bus
وهو المسار التى ترسل عليه إشارات التحكمالتى تكلمنا عليها فى الجزء الثانى من هذا الدرس ،،، ويكون هذا المسار متصل به كلمكونات الكمبيوتر و ذلك ليمكن التحكم بالبيانات من جانب المعالج ،،إذنكيف يمكن نقل البيانات ،،
-------------------------------
لوإفترضنا ان المعالج ينفذ التعليمه MOV AX,[1000] :والتى معناها "إنقل محتوياتالمكان بالذاكره المعنون ب 1000 داخل مقطع البيانات الحالى إلى المسجل AX
يقومالمعالج بحساب العنوان الحقيقى من العنوان 1000 فى التعليمه و عنوان المقطع (راجعجزء العنونه فى دروس الأسمبلى) و يقوم بوضع الناتج فى مسجل العناوين Address Register وهو المسجل المسؤول عن العناوين ، ثم يرسل المعالج إشارة قراءه من الذاكره، ستقوم دوائر البحث فى الذاكره بالبحث عن هذا العنوان المسجل فى مسجل الذاكره AR ومن ثم تحميل ما يحتويه هذا المكان على مسار البيانات Data Bus ، فى نفس الوقت يكونالمعالج قد أرسل رسالة كتابه فى المسجل AX ومن ثم تنتقل البيانات التى على مسارالداتا (والتى خرجت من الاذكره لتوها) إلى المسجل و بهذا تكون التعليمه تم تنفيذهاوبهذه الطريقه يتم نقل البيانات جميعها عبر مكونات الكمبيوتر ، ونلخص هذا فى الخطوات الأتيه :-1 -
تحديد عنوان مكان البيانات المستخدمهفى التعليمه الحاليه .
2 - تحديد المكان الذى سيتم إرسال البيانات له و من ثمفتح بن الكتابه به .
3 - تكون البيانات متاحه على مسار البيانات والتى ستنتقلإلى المكون المفتوح لديه بن الكتابه حاليا.
يقوم المعالج بالتحكم فى مسار هذهالإشارات و التحكم بها و موازنة كل خطوه من الخطوات السابقه Syncronization لينتجلك ما تعمل عليه الأن
----------------------------------------------------------------------------------------------------------------------------------------
.
- مما يتركب المعالج ؟؟
---------------------------
- المسجلات
- وحدة الحساب و المنطق
- المسارات المختلفهبداخله و التى تحدثنا عنها سابقا
- باقى المكونات الأخرى ....
----------------------------------------------------------------------------------------------------------------------------------------
البيانات و أنواعها ،،،
- كما لابدأن تعلم أخى/أختى الكريم/الكريمهأن كل ما هو مخزن على وحدات التخزين المختلفه فى الحاسبتكون محزنه على هيئة 0 و 1 و تكون فيما بينها مجموعه من (البيانات والتعليمات)
- فمثلا ، ملفات ال txt تحتوى على بيانات ، ملفات ال doc تحتوى على بيانات ، ملفات exe تحتوى على تعليمات و بيانات ، ملفات لل dll تحتوى علىتعليمات فقط و هكذا
- تتواجد التعليمات عادة فى الملفات التنفيذيه ومكتبات التشغيل (exe , dll , ocx , com , bin)
- يمكن التفريق بينالبيانات و التعليمات بإستخدام الحقائق الأتيه :-+ الملفات التشغيليه تحتوى على أكواد تعليمات معلومه لدىالمعالج و نظام المعالجه ككل .
+ الملفات التشغيليه لها إمتدادات معروفه (ocx , dll , exe , ....) .
+ الملفات التنفيذيه لها تركيب معين ، كل البرامج العاملهأمامك الأن لها نفس التركيب ،ملحوظه :لذيادة المعرفه حول تركيب الملفاتالتنفيذيه من الأنواع (exe , com) ، يرجى قراءة دروس Xacker فى موضوع صناعةاليروسات.
+ فيما عدا ذلك ، يعتبره نظام التشغيل بيانات .مثال : -برنامجبسيط يقوم بطباعة رسالة hello على الشاشه ومن ثم ينتظر لأن يضغط المستخدم على حرفمن لوحة المفاتيح "Press Any Key To Exit" لينتهى البرنامج ،
-------- التحليل ---------
- هذا البرنامج مكون من التعليمات الأتيه :+ تحضير لبدأ البرنامج و ذلك بتحميل مسجلالمقطع بعنوان مقطع الكود للبرنامج .
+ تعليمات الطباعه على الشاشه .
+ تعليمات إنتظار حرف من وحدة الإدخال (لوحة المفاتيح KeyBoard) .
- ويحتوى على البيانات الأتيه :
+ النص "Hello" .
+ النص "Press Any Key To Exit"
-------- نهاية التحليل ---------
- البياناتممكن أن تكون صور ، ألوان ، أصوات ، نصوص ، نصوص مشكله ، بيانات مبهمه ......
- يمكن التفريق بين أنواع البيانات المختلفه (بالنسبه لنظام التشغيل) :-
+ إمتداد الملف نفسه الذى يحتوى على البيانات .
+ تركيبالملف نفسه الذى يحتوى على البيانات .
+ أن تكون البيانات التى بداخل الملف لهاصيغ مفهومه للبرنامج المشغل لها و إلا سيقوم بإضهار رسالةخطأللمذيد عن تركيب الملفات ، يرجى زيارة المواقع الأتيه :-
http://www.onicos.com/staff/iz/formats
http://whatis.techtarget.com/fileFormatA
http://myfileformats.com/
- لا يمكن للبيانات أنيكون لها أهميه إلا بوجود التعليمات (البرامج المشغله) .
- لا يمكن للبرامج أنتكون لها فائده إلا بتعاملها و معالجتها للبيانات المختلفه .
- أى برنامج يتكونمن جزء بيانات Data Segment وجزء تعليمات Code Segment .
CODE
Each program must consist from some code Instructions and some data blocks
-----------------------------------------------------------------------------------------------------------------------
كيف تتم معالجة البرامج و تعليماتها؟؟
- نظام التشغيل هو المسؤول عن تحضيرالملفات التنفيذيه و إختبار صحة تركيبها و من ثم تكون البرامج جاهزه للتحميل علىالذاكره .
- لا يتعامل المعالج مع الأقراص الصلبه مباشراً ، فالمعالج لايعرف إلا الذاكره و المسارات و المسجلات وفقط ،
- نظام التشغيل المسؤول عنتحميل البرامج فى الذاكره و إصدار الأمر للمعالج بأن يبدأ بتنفيذ تعليمات البرنامج .
- علمتم أخوتى من القسم السابق (البيانات و أنواعها) فإن كل برنامج يتكونمن تعليمات و بيانات ، وكل نوع من الملفات له الصيغه المعروفه من جانب نظام التشغيل، حيث يقوم نظام التشغيل بتحميل هذه التعليمات و البيانات فى الذاكره ومن ثم يسلمالمعالج زمام الأمور لتنفيذ هذه التعليمات .
- يحتوى المعالج على مسجل مقطع، يكتب به عنوان مقطع الكود الحالى بالذاكره والذى قام نظام التشغيل بتحميلها فيه .
- يحتوى المعالج على مسجل مقطع يحتوى بداخله على عنوان مقطع البياناتالحلى فى الذاكره و الذى قام نظام التشغيل بتحميله به .
- يحتوى المعالج علىمسجل يوضع به عنوان التعليمه بالذاكره التى عليها الدور فى التنفيذ .
خطوات تنفيذ أى برنامج :-
-----------------------------
1 - يتأكد نظام التشغيل منأن تركيبة الملف التنفيذى سليمه و معروفه (ملفات ال exe مثلا تركيبها غير معروف لدىنظام التشغيل لينوكس لذا لا يستطيع التعامل معها ولا تشغيلها إلا بإضافة مفسرات لها )
2 - يقوم نظام التشغيل بقراءة نوع الملف من ناحيت إحتياجاته للذاكره (توجد عدة أنواع تختلف فى عدد مقاطع الداتا و الكود الذى سيحتاج إليها البرنامج ويكون المبرمج مسؤول أو لغة البرمجه العالية المستوى مسؤوله عن كتابة هذه الأنواع فىأول البرنامج) - إنتظر دروس الأسمبلى القادمه ، سوف اشرح هذا الجزء برمجيا بالتفصيل
3 - يقوم نظام التشغيل بالبحث لديه فى الذاكره على المقاطع الفارغه ، فإنلم يجد مساحه كافيه لتحميل البرنامج و بياناته ، فإنه يصدر رسالة خطأ .
4 - يقوم نظام التشغييل بتحميل تعليمات البرنامج و بياناته (لو وجدوا فى ملف واحد - بمعنى أنه يمكن لبرنامج أن يضع بياناته الأساسيه بجانبه فى ملف منفصل و من ثم يقومالبرنامج نفسه بطلب تحميلها بعد ذلك) .
5 - تحميل كل من مسجلات المقاطع ومسجل التعليمات Instruction Register IR بالقيم المطلوبه ، والجدير بالذكر هنا أنمسجل التعليمات يتم تصفيره فى حالة بدأ تشغيل برنامج جديد وذلك لأن أو تعليمه فىالبرنامج يجب أن توضع فى المكان صفر من مقطع الكود بالذاكره .
6 - يبدأالمعالج بأخذ أول تعليمه والمقابله للعنوان صفر داخل مقطع الكود و يقوم بتنفيذهاومن ثم يزيد قيمة مسجل التعليمات بواحد (IR = IR +1) وذلك للتعليمه الأتيه وهكذاحتى يصل إلى تعليمة التى تسلم نظام التشغيل التحكم ثانياً .
7 - الجديربالذكر أن نظم التشغيل الحديثه لا تترك للمعالج (البرنامج) السيطره الكامله علىالجهاز و مكوناته و لكن تختبر حالة البرنامج كل وقت معين و ذلك للتأكد من أنه يعملبحاله جيده و لا يسبب أخطاء أو تلف للعتاد (تتذكر أنه فى الدوس لو قمت بكتابةبرنامج صغير يدخل فى دوره لا نهائيه Infinite Loop و قمت بتشغيله على الدوس ، لنتسطيع أن توقف البرنامج إلا بعمل إعادة تحميل للجهاز كله Restart ) .
8 - معظم نظم التشغيل الحديثه تقوم بتغيير تعليمات البرنامج و ذلك لجماية مكونات الجهازالحقيقيه من الوصول المباشر لها .
كيف يقوم المعالج بتنفيذ تعليمه ما ؟
- كل تعليمه لها تركيب ثنائى مختلف عن الباقى ، ومنثم يستطيع المعالج التمييز بين كل تعليمه و أخرى .
- يدخل التركيب الثنائىعلى المعالج لتفسيرها ومن ثم تنفيذها مباشراً ،
- مثال :-دعنا نتخيل أن القيمه (01110) هى المقابله للتعليمه ADD AX,BX ،
+ إذن عند وصول القيمه (01110) إلى المعالج للتنفيذ ، فإن مكونات المعالجالمنطقيه تقوم بإدخال محتويات المسجل BX و المسجل AX على وحدة الحساب والمنطق
+ و من ثم تشغيل Activate عملية الجمع داخل وحدة الحساب و المنطق ALU
+ تكون وحدة الحساب و المنطق موصله بمسار البيانات ، فيتم كتابة الناتج علىالمسار ،
+ ومن ثم فتح بن Bin الكتابه على المسجل AX و بهذا يكون تم إنهاءتنفيذ هذه التعليمه .
+ وبنفس الطريقه يتم تنفيذ كل التعليمات و لكن النظرهالسابقه بسيطه جدا عن الواقع
الكامل في قواعد البيانات مع VB.net - Full VB.Net Database Tutorials
ارفق لكم مثال كامل حول كيفية استخدام قواعد البيانات من خلال VB.NET ..
المثال مفتوح المصدر بالتاكيد ، ومرفق معه الشرح الكامل و المفصل الخاص به ..
يتضمن الشرح المواد التالية :
** كيفية الربط بقاعدة البيانات بصورة برمجية .
** كيفية ربط صناديق النصوص بقاعدة البيانات لعرض المعلومات .
** كيفية التنقل بين سجلات قاعدة البيانات .
** كيفية حذف سجل من قاعدة البيانات .
** كيفية اضافة سجل جديد الى قاعدة البيانات .
**كيفية تعديل سجل موجود في قاعدة البيانات .
** كيفية البحث في قاعدة البيانات ( مطابق لكلمة البحث ، بحث عام ) .
** كيفية عرض نتيجة البحث على صناديق النصوص .
** كيفية عرض نتيجة البحث على شبكة عرض البيانات DataGridView .
** كيفية الحذف من نتيجة البحث .
** كيفية التعديل على نتيجة البحث .
اضافة الى الكثير من المعلومات و المفاهيم البرمجية ..
رابط تحميل المثال مع الشرح :
http://www.4shared.com/file/14026880...neerAuday.html
تعرف على قواعد بيانات FireBird في دلفي - FireBird Databases in delphi
Firebird قاعدة بياناتSQL وهي الجيل الجديد من interbase 6.0 التي تاتي مرفقة مع الدلفي ولكن ما يميزها :
- أنها مجانية ومفتوحة المصدر
- تأخذ ملف واحد فقط امتداه fdb وتستطيع تغيير الامتداد .
- ضخامة البيانات كـ MS-SQL Server
- تستخدم نمط معايير SQL-92 في التخاطب معها
- تدعم Transactions و Record Version و Stored Procedures و Triggers
- تستطيع صنع تعليمات Udf إضافية بنفسك بواسطة الدلفي .
- دعمها من قبل بورلاند بواسطة أدوات IBX المتوفرة مع الدلفي .
- تعمل على نظامي Linux, Windows .
ماذا تحتاج لكي تعمل على قواعد بيانات Firebird ؟
تحتاج في البداية فقط تنصيب هذا البرنامج :
Firebird-1.5.0.3744-RC4-Win32.exe وهو Firebird server for windows
وتستطيع الحصول عليه من هذا الموقع http://sourceforge.n...ojects/firebird
بعد تنزيل البرنامج يمكن إجراء العمليات عليها ( مثل تغيير الرقم السري لقاعدة البيانت إضافة مستخدم الى قاعدة البيانات ، انشاء قاعدة بيانات ، أنشاء جدول ، إنشاء حقول ) من خلال الدوس أو من خلال برامج مثل IBExpert - EMS InterBase & FireBird Manager 3 - وتستطيع الحصول عليها من المواقع التالية :
www.ibexpert.com
http://ems-hitech.com
وتستطيع الحصول على المزيد من المعلومات عنها من خلال المواقع والمجموعات التالية :
http://www.firebirdsql.org/
http://groups.yahoo....hitect/messages
http://groups.yahoo....eneral/messages
http://groups.yahoo....upport/messages

