(أساسيات لغة الأسمبلي للقراصنة) الدرس الأول : كيف يفكر الكمبيوتر ؟
العالم العربي :: الكمبيوتر والجوالات وتطويرالمواقع والمنتديات :: الكمبيوتر والأنترنت :: التطوير ولغات البرمجة
صفحة 1 من اصل 1 • شاطر
(أساسيات لغة الأسمبلي للقراصنة) الدرس الأول : كيف يفكر الكمبيوتر ؟
السلام عليكم ورحمة الله وبركاته
في هذا الشرح حنشوف إن شاء الله نظرة عامة حول كيفية إشتغال الكمبيوتر ، سأبدأ بعرض مكونات الكمبيوتر ثم وصفة عامة لكل مكون ، ثم سنتعمق قليلا في المكونات الأهم بالنسبة لنا .
(وهذه ليست كل مكونات الكمبيوتر ، بل توجد مكونات أخرى لا تهمنا حاليا )
Processor = CPU (المعالج)
يمكننا القول بأنه هو المكون الأساسي ، فهو دماغ الحاسوب . فهو الذي يقوم بتشغيل برامج الكمبيوتر المختلفة وإجراء الحسابات اللازمة لحسن سير العمل في جهاز الكمبيوتر
الذاكرة :
يحتاج الحاسوب لتخزين بيناته لكي يشتغل ، لذلك فهو يحتوي على مكانين لهذا الغرض :
*) القرص الصلب (The hard drive) : هنا يتم تخزين البيانات التي لا يحتاجها الكمبيوتر بصفة دائمة . جميع الملفات الخاصة بك (مثل الفيديوهات ، الأناشيد ... إلخ ) يتم تخزينها في القرص الصلب
لكن القرص الصلب لديه جانب سلبي ، فهو بطيئ ، يعني أن الكمبيوتر يقضي وقتا طويلا للوصول إلى البيانات المخزنة فيه .
مثال : لو ضغطت على فيديو فستلاحظ أن الكمبيوتر يحتاج بعض الوقت ليشغله . لأن الفيديو مخزن في القرص الصلب فالكمبيوتر يحتاج بعض الوقت ليصل إليه
*) ذاكرة الوصول العشوائي (RAM = وهي إختصار ل Random Access Memory ) :
هنا تخزن البيانات التي يحتاجها الكمبيوتر بإستمرار .
على العموم بيانات البرامج في طور التشغيل يتم تخزينها في الذاكرة العشوائية (مثل حياة شخص في لعبة) . يتم تخزين البرنامج في القرص الصلب عندما لا يكون
البرنامج في طور التشغيل ، وعند تشغيل البرنامج يقوم الكمبيوتر بتخزين كل بيانات هذا البرنامج من القرص الصلب إلى الذاكرة العشوائية ، وهذا مايجعل من البرنامج أكثر
سرعة
I/O Devices
وهي باقي مكونات الكمبيوتر : الفأرة والشاشة ، لوحة المفاتيح ...
Bus
: وهي المسؤولة على نقل البيانات بين مكونات الكمبيوتر (مثلا من القرص الصلب إلى الذاكرة العشوائية والعكس بالعكس)
من هنا فصاعدا عندما أتحدث على الذاكرة بدون أن أشير ماهي بالتحديد ، فأنا أقصد ذاكرة الوصول العشوائي
قبل أن نبدأ بتحليل كل من هذه المكونات سنطلق عليها إسم : معمارية الحاسوب
المعمارية هي الطريقة التي صُنع من خلالها الحاسوب من الداخل ؛ وطريقة إتصال مكوناته مع بعضهم البعض أي كل التنظيم الداخلي للحاسوب .
يوجد في عالم الأجهزة نوعان من المعمارية .
معمارية von Neumann فون نيومان ومعمارية هارفارد Harvard د .
من حيث الأداء لايمكننا الحقيقة تفضيل معمارية على أخرى ؛ فلكل منهما نقاط قوة وعيوب .
على أية حال ؛ معظم الحواسيب صنعوا حسب معمارية فون نيومان .
البرنامج الذي يُكتب حسب معمارية معينة لا يمكن أن يشتغل على معمارية أخرى ؛
يعني مثلا : لو كتبنا برنامج حسب معمارية فون نيومان فلا يمكن لهذا البرنامج أن يشتغل على معمارية هارفارد والعكس بالعكس .
وبما أن هدفنا هو كتابة برنامج على الكمبيوتر فسنستعمل إذا معمارية فون نيومان ؛ يعني كل ماسأذكره هنا فهو يخص معمارية فون نيومان .
هدفنا في هذا الدرس هو شرح كيف يفكر الكمبيوتر ؛
لكن قبل كل شيء يجب معرفة شيء وهو أن كل دماغ ليستطيع أن يفكر يجب أن يكون له ذاكرة .
مثال : لو طلبت منكم أن تقوموا بحساب ـ 4+7+1 . هل تستطيعون إجابتي إن لم تتمكنوا من حفظ هذه الأعداد الذين طلبت منكم جمعها ؟
بالطبع فلا .
لذلك يجب أولا : معرفة ماهي الأعداد لنتمكن من حسابها
وثانيا : يجب حفظ أن العملية المطلوبة هي عملية جمع .
بدون ذلك فلا يمكنكم معرفة مذا ستفعلون بهذه الأعداد .
ذ==> نفس الشيء بالنسبة للكمبيوتر . فليتمكن المعالج من القيام بالحساب المطلوب ، فيجب تخزين المعلومات الضرورية مسبقا في الذاكرة
طيب مذا نفعل لتخزين المعلومات في الحاسوب ؟
الإجابة بكل بساطة هي أننا سنقوم بإستعمال الكهرباء .
سنستعمل الكهرباء لتخزين المعلومات ؟
نعم هذا ما سنفعله بالتحديد ، ويمكننا أن نخزن كم هائل من المعلومات بإستعمال
الكهرباء ، ولمزيد فهم ذلك إخواني سأروي لكم قصة صغيرة وستكون بدون شك أغبى قصة ممكن
تسمعونها لكنها من الأكثر إفادة : )
في يوم من الأيام ، سافر القرصان زيرو كول مع طاقمه عبر البحار . فأعترضته جزيرة فنهب جميع ممتلكاتها .
لكن زيرو كول كانت له مشكلة وهو أنه لم يتوقف عن التفكير في أن جنود البحرية يطاردونه ، لذلك
كان لا يشارك في الهجمات ،
فيرسل طاقمه لينهبوا ممتلكات الجزيرة من دونه ويكلف نائبه بإدارة العمليات ، وكان يبقى في قاربه
على مسافة آمنة من الجزيرة وعلى إستعداد للفرار في حالة تدهور الأمور .
لكن كيف لزيرو كول أن يعرف أن الأمور تدهورت مع أنه بقي بعيدا عن الجزيرة ؟
لم يكن زيرو كول شجاعا لكنه كان ذكيا بعض الشيء ، فقد إخترع وسيلة ليتمكن من
معرفة إذا كان جنود البحرية على الجزيرة أم لا مع بقائه آمنا في السفينة .
عندما لا يكون هناك أي خطر يقوم نائبه بإشعال المصباح ، وحينما يرى زيرو كول المصباح مضيئا
فيعلم أنه يمكنه الإلتحاق بطاقمه بشكل آمن ، وفي المقابل إذا تم القبض على أفراد الطاقم ،
فسيبقى المصباح طافئ فيعلم زيرو كول حينها أنه يجب عليه الهروب بأسرع وقت ممكن .
ومرت الأشهر السعيدة والدموية وبقي الحال هكذا في كل هجمة يقومون بها . ذات يوم ظهر كنز
في الجزيرة فأراد زيرو كول أن يكون أول من يستلي عليه . فأعطى نائبه مصباح آخر ليقوم بإضائتها
في حالة عثورهم على الكنز ولكي لا يتم الخلط بين الإشارتين ، قرر زيرو كول أن يكون المصباح
الذي على اليمين يشير إلى وجود جنود البحرية على الجزيرة والمصباح الذي على اليسار يشير
على أنه تم العثور على الكنز .
كان إختراع زيرو كول جيد ، فهو يسمح له إستقبال المعلومات عن بعد من قبل نائبه الذي كانت
مهمته هي " تخزين " المعلومة الصحيحة في المصابيح .
وكلما زادت معلومة يقوم زيرو كول بإضافة مصباح آخر لنائبه .
في الحقيقة ،النظام الذي إخترعه زيرو كول أقوى مما تتصورون ، فهو يسمح له أيضا بنقل الأعداد (
مثال : عدد الغنائم و الكنوز وعدد الجنود الذين على الجزيرة ... إلخ)
كيف ذلك ؟
يكون ذلك بإستخدام النظام الثنائي .
ماهي علاقة مصباح زيرو كول بالنظام الثنائي ؟
كل مصباح تبع زيرو كول مثل رقم في النظام الثنائي . فالمصباح ممكن أن يكون مضيء أم
طافئ ، والرقم في النظام الثنائي يمكن أن يكون 0 أو 1 . مصباح مضيئ يعني 1 و مصباح طافئ
يعني 0 .
مثال : لو عثر الطاقم على 5 كنوز ، يقوم النائب بإضائة المصباح الذي في أقصى اليمين ويترك
المصباح الثاني طافئ ويضيئ المصباح الثالث . وهذا يعني 101 في النظام الثنائي أي مايساوي 5
في النظام العشري .
الآن بعد توضيح العلاقة بين المصابيح والنظام الثنائي ، سنقوم بالتعمق قليلا .
في حالة أن زيرو كول أعطى لنائبه 4 مصابيح ، فلا يستطيع هذا الأخير أن يشير له عدد أكبر من 15
، بما أن في النظام الثنائي ب 4 بت لا يمكن لنا أن نتجاوز 15 أي (1111 في النظام الثنائي) ،
العدد 16 يحتاج لزيادة بت خامسة : 0000 1
طيب ياعم الحج قصتك جميلة لكن ماهي علاقتها بالكمبيوتر ؟
بكل بساطة تشتغل ذاكرة الكمبيوتر مثل نظام زيرو كول تماما . الفرق الوحيد هو أننا
سنعوض المصابيح بمكونات كهربائية صغيرة وهو مايسمى " المولدات " .
المولدات لها حالتين مثل المصابيح تماما : تكون مشحونة أو غير مشحونة .
المولد المشحون بالكهرباء مُعادل لمصباح مضيء (=1)
المولد الغير مشحون بالكهرباء مُعادل لمصباح طافئ (=0) .
عندما يريد الكميوتر تخزين المعلومات يفعل مثل نائب زيرو كول فيستعمل النظام الثنائي . لكن بدل
إضائة المصابيح يقوم بشحن المولدات بالكهرباء . والفرق الوحيد أن الكمبيوتر يستطيع شحن آلاف
المولدات بالكهرباء في أقل من ثانية وبذلك يستطيع تخزين كم هائل من المعلومات بسرعة فائقة . في
المقابل ليقوم نائب زيرو كول بإضائة ألاف المصابيح يلزمه أسابيع .
تخيلوا أننا طلبنا من الكمبيوتر تخزين معلومة ، مثال حياة لاعب في لعبة . فسيقوم الكمبيوتر
بشحن المولدات بإتباع النظام الثنائي .
إذا كانت حياة الاعب تساوي 20 (10100 بالنظام الثنائي ) فسيستخدم الكمبيوتر 5 مولدات لأننا
في النظام الثنائي نحتاج إلى 5 bits لكتابة هذا العدد . يقوم الكمبيوتر بشحن المولد الثالث والمولد
الخامس إبتدائا من اليمين ويترك البقية (المولد الأول والثاني والرابع) بدون شحن . تماما مثل هذا
العدد في النظام الثنائي . 10100
إلى جانب الأعداد نستطيع تخزين أي نوع من البيانات ولكن كلهم يتم كتابتهم بالنظام الثنائي .
بعض المفاهيم في النظام الثنائي :
ال Bit : هي وحدة من النظام الثنائي ، وكل 0 أو 1 يسمى Bit . مثال 1000 10 تحتوي على 6 bits
ال "nibble" هي مجموعة 4 bits . مثال 1110 تسمى nibble
ال Octet هي مجموعة 8 bits مثال 1001 1000 تسمى Octet
ال Word هي مجموعة 16 bits مثال 1000 1010 1111 1010 تسمى Word تحتوي على 2 octets مايعادل 4 nibble
ال word double هي مجموعة 32 bits مثال 1110 1010 1110 1100 1010 1110 1100 1010 .
يعني يحتوي على 2 word و 4 octets و 8 nibble ي .
تنظيم الذاكرة
يوجد ملايين المولدات في الذاكرة ، منها مايحتوي على الألون ومنها مايحتوي على الأناشيد ومنها مايحتوي على مقاطع فيديو ... إلخ
ذا كانت كل البيانات تُخزن في المولدات فمذا يفعل الكمبيوتر لكي لا يقوم بالخلط بين البيانات ؟
من حسن حظنا أنه يوجد مايسمى " تنظيم الذاكرة " أي أن الذاكرة منظمة بشكل دقيق .
يتم ترتيب المولدات على شكل شرائط وكل شريط يحتوي على 8 مولدات .
إذا فالذاكرة تحتوي على ملايين الشرائط وكل شريط يحتوي على 8 مولدات .
يعني أن الشريط يمكن له أن يخزن 1octet بما أنه يتكون من 8 مولدات .
هذه الشرائط مرقمة
الشريط الأول يحمل الرقم 0
الشريط الثاني يحمل الرقم 1
الشريط الثالث يحمل الرقم 2.. إلخ
ونسمي هذا الرقم " عنوان "
وبفضل هذا العنوان يتمكن الكمبيوتر من التعرف على الذاكرة ، فعندما يخزّن معلومة ، يضعها في
عنوان محدد . وعندما يطلب البرنامج لاحقا إستعمال هذه المعلومة ، يقوم الكمبيوتر بالبحث عليها
في العنوان الذي ضعها فيه .
بعض القواعد المهمة :
لا يمكننا تخزين إلا معلومة واحدة في كل عنوان .
هذا يعني أن حتى إذا كان لي معلومة تأخذ أقل من 1 bits 8 = )octet )
فسأكون على أية حال مظطرإلى إستعمال كل الشريط .( يحتوي على 8 bits)
لو فرضنا أننا نريد تخزين حياة لاعب في لعبة ، التي تساوي 22 (يعني 10110 في النظام الثنائي) .
يعني أنا محتاج إلى 5 bits . ومع ذلك سأقوم بإستعمال كل الذاكرة التي يحويها " العنوان " يعني 1 octet الذي يساوي 8 bits .
سأقوم إذا بتخزين 0110 0001 في الذاكرة .===.> الأصفار الي أضفتها أمام العدد لا يغيرون من
قيمته ( مثل ماهو في النظام العشري 00022 = 22 )
لا يمكننا إستعمال أقل من 1 octet طيب ..
لكن هل يمكننا إستعمال أكثر من 1 octet ؟ م
بكل بساطة نقوم بتخزين بياناتنا على عديد من الأشرطة المتتالية .
نأخذ مثال : تصوروا أننا سنقوم بتخزين (word=16 bits) في العنوان 6 .
نأخذ كمثال هذآ للعدد الثنائي : 1011 0111 1011 1100 .
فنقول إلى الكمبيوتر قم بتخزين word 1100 1011 0111 1011 في العنوان رقم 6 ، فيقوم الكمبيوتر أوتوماتكيا بتخزين
1011 0111 في العنوان رقم 6 ويخزن 1011 1100 في العنوان رقم 7 . ( بما أن العنوان الواحد لا يمكن له أن يحتوي على أكثر من 8 bits )
ثم بعد ذلك إذا طلبت من الكمبيوتر أن يمدني بword التي يشير إليها العنوان 6 فسيبعث لي بطريقة
أوتوماتكية محتوى العنوان 6 ومحتوى العنوان 7 وفي المقابل إن طلبت منه أن يمدني ب octet التي
تقع في العنوان 6 فسيمدني بمحتوى العنوان 6 فقط أي 1011 0111 .
و إن طلبت منه أيضا أن يمدني بال octet التي تقع في العنوان 7 فسيمدني بمحتوى العنوان 7 أي 1011 1100
طيبا من الآن فصاعدا سنسمي الأشياء بمسمياتها فعوض أن نسمي " أشرطة " نسميها " مكان الذاكرة "
معنى كلمة بايت (Byte) ة
من هنا فصاعدا عندما أتحدث على الذاكرة بدون أن أشير ماهي بالتحديد ، فأنا أقصد ذاكرة الوصول العشوائي
قبل أن نبدأ بتحليل كل من هذه المكونات سنطلق عليها إسم : معمارية الحاسوب
المعمارية هي الطريقة التي صُنع من خلالها الحاسوب من الداخل ؛ وطريقة إتصال مكوناته مع بعضهم البعض أي كل التنظيم الداخلي للحاسوب .
يوجد في عالم الأجهزة نوعان من المعمارية .
معمارية von Neumann فون نيومان ومعمارية هارفارد Harvard د .
من حيث الأداء لايمكننا الحقيقة تفضيل معمارية على أخرى ؛ فلكل منهما نقاط قوة وعيوب .
على أية حال ؛ معظم الحواسيب صنعوا حسب معمارية فون نيومان .
البرنامج الذي يُكتب حسب معمارية معينة لا يمكن أن يشتغل على معمارية أخرى ؛
يعني مثلا : لو كتبنا برنامج حسب معمارية فون نيومان فلا يمكن لهذا البرنامج أن يشتغل على معمارية هارفارد والعكس بالعكس .
وبما أن هدفنا هو كتابة برنامج على الكمبيوتر فسنستعمل إذا معمارية فون نيومان ؛ يعني كل ماسأذكره هنا فهو يخص معمارية فون نيومان .
هدفنا في هذا الدرس هو شرح كيف يفكر الكمبيوتر ؛
لكن قبل كل شيء يجب معرفة شيء وهو أن كل دماغ ليستطيع أن يفكر يجب أن يكون له ذاكرة .
مثال : لو طلبت منكم أن تقوموا بحساب ـ 4+7+1 . هل تستطيعون إجابتي إن لم تتمكنوا من حفظ هذه الأعداد الذين طلبت منكم جمعها ؟
بالطبع فلا .
لذلك يجب أولا : معرفة ماهي الأعداد لنتمكن من حسابها
وثانيا : يجب حفظ أن العملية المطلوبة هي عملية جمع .
بدون ذلك فلا يمكنكم معرفة مذا ستفعلون بهذه الأعداد .
ذ==> نفس الشيء بالنسبة للكمبيوتر . فليتمكن المعالج من القيام بالحساب المطلوب ، فيجب تخزين المعلومات الضرورية مسبقا في الذاكرة
طيب مذا نفعل لتخزين المعلومات في الحاسوب ؟
الإجابة بكل بساطة هي أننا سنقوم بإستعمال الكهرباء .
سنستعمل الكهرباء لتخزين المعلومات ؟
نعم هذا ما سنفعله بالتحديد ، ويمكننا أن نخزن كم هائل من المعلومات بإستعمال
الكهرباء ، ولمزيد فهم ذلك إخواني سأروي لكم قصة صغيرة وستكون بدون شك أغبى قصة ممكن
تسمعونها لكنها من الأكثر إفادة : )
في يوم من الأيام ، سافر القرصان زيرو كول مع طاقمه عبر البحار . فأعترضته جزيرة فنهب جميع ممتلكاتها .
لكن زيرو كول كانت له مشكلة وهو أنه لم يتوقف عن التفكير في أن جنود البحرية يطاردونه ، لذلك
كان لا يشارك في الهجمات ،
فيرسل طاقمه لينهبوا ممتلكات الجزيرة من دونه ويكلف نائبه بإدارة العمليات ، وكان يبقى في قاربه
على مسافة آمنة من الجزيرة وعلى إستعداد للفرار في حالة تدهور الأمور .
لكن كيف لزيرو كول أن يعرف أن الأمور تدهورت مع أنه بقي بعيدا عن الجزيرة ؟
لم يكن زيرو كول شجاعا لكنه كان ذكيا بعض الشيء ، فقد إخترع وسيلة ليتمكن من
معرفة إذا كان جنود البحرية على الجزيرة أم لا مع بقائه آمنا في السفينة .
عندما لا يكون هناك أي خطر يقوم نائبه بإشعال المصباح ، وحينما يرى زيرو كول المصباح مضيئا
فيعلم أنه يمكنه الإلتحاق بطاقمه بشكل آمن ، وفي المقابل إذا تم القبض على أفراد الطاقم ،
فسيبقى المصباح طافئ فيعلم زيرو كول حينها أنه يجب عليه الهروب بأسرع وقت ممكن .
ومرت الأشهر السعيدة والدموية وبقي الحال هكذا في كل هجمة يقومون بها . ذات يوم ظهر كنز
في الجزيرة فأراد زيرو كول أن يكون أول من يستلي عليه . فأعطى نائبه مصباح آخر ليقوم بإضائتها
في حالة عثورهم على الكنز ولكي لا يتم الخلط بين الإشارتين ، قرر زيرو كول أن يكون المصباح
الذي على اليمين يشير إلى وجود جنود البحرية على الجزيرة والمصباح الذي على اليسار يشير
على أنه تم العثور على الكنز .
كان إختراع زيرو كول جيد ، فهو يسمح له إستقبال المعلومات عن بعد من قبل نائبه الذي كانت
مهمته هي " تخزين " المعلومة الصحيحة في المصابيح .
وكلما زادت معلومة يقوم زيرو كول بإضافة مصباح آخر لنائبه .
في الحقيقة ،النظام الذي إخترعه زيرو كول أقوى مما تتصورون ، فهو يسمح له أيضا بنقل الأعداد (
مثال : عدد الغنائم و الكنوز وعدد الجنود الذين على الجزيرة ... إلخ)
كيف ذلك ؟
يكون ذلك بإستخدام النظام الثنائي .
ماهي علاقة مصباح زيرو كول بالنظام الثنائي ؟
كل مصباح تبع زيرو كول مثل رقم في النظام الثنائي . فالمصباح ممكن أن يكون مضيء أم
طافئ ، والرقم في النظام الثنائي يمكن أن يكون 0 أو 1 . مصباح مضيئ يعني 1 و مصباح طافئ
يعني 0 .
مثال : لو عثر الطاقم على 5 كنوز ، يقوم النائب بإضائة المصباح الذي في أقصى اليمين ويترك
المصباح الثاني طافئ ويضيئ المصباح الثالث . وهذا يعني 101 في النظام الثنائي أي مايساوي 5
في النظام العشري .
الآن بعد توضيح العلاقة بين المصابيح والنظام الثنائي ، سنقوم بالتعمق قليلا .
في حالة أن زيرو كول أعطى لنائبه 4 مصابيح ، فلا يستطيع هذا الأخير أن يشير له عدد أكبر من 15
، بما أن في النظام الثنائي ب 4 بت لا يمكن لنا أن نتجاوز 15 أي (1111 في النظام الثنائي) ،
العدد 16 يحتاج لزيادة بت خامسة : 0000 1
طيب ياعم الحج قصتك جميلة لكن ماهي علاقتها بالكمبيوتر ؟
بكل بساطة تشتغل ذاكرة الكمبيوتر مثل نظام زيرو كول تماما . الفرق الوحيد هو أننا
سنعوض المصابيح بمكونات كهربائية صغيرة وهو مايسمى " المولدات " .
المولدات لها حالتين مثل المصابيح تماما : تكون مشحونة أو غير مشحونة .
المولد المشحون بالكهرباء مُعادل لمصباح مضيء (=1)
المولد الغير مشحون بالكهرباء مُعادل لمصباح طافئ (=0) .
عندما يريد الكميوتر تخزين المعلومات يفعل مثل نائب زيرو كول فيستعمل النظام الثنائي . لكن بدل
إضائة المصابيح يقوم بشحن المولدات بالكهرباء . والفرق الوحيد أن الكمبيوتر يستطيع شحن آلاف
المولدات بالكهرباء في أقل من ثانية وبذلك يستطيع تخزين كم هائل من المعلومات بسرعة فائقة . في
المقابل ليقوم نائب زيرو كول بإضائة ألاف المصابيح يلزمه أسابيع .
تخيلوا أننا طلبنا من الكمبيوتر تخزين معلومة ، مثال حياة لاعب في لعبة . فسيقوم الكمبيوتر
بشحن المولدات بإتباع النظام الثنائي .
إذا كانت حياة الاعب تساوي 20 (10100 بالنظام الثنائي ) فسيستخدم الكمبيوتر 5 مولدات لأننا
في النظام الثنائي نحتاج إلى 5 bits لكتابة هذا العدد . يقوم الكمبيوتر بشحن المولد الثالث والمولد
الخامس إبتدائا من اليمين ويترك البقية (المولد الأول والثاني والرابع) بدون شحن . تماما مثل هذا
العدد في النظام الثنائي . 10100
إلى جانب الأعداد نستطيع تخزين أي نوع من البيانات ولكن كلهم يتم كتابتهم بالنظام الثنائي .
بعض المفاهيم في النظام الثنائي :
ال Bit : هي وحدة من النظام الثنائي ، وكل 0 أو 1 يسمى Bit . مثال 1000 10 تحتوي على 6 bits
ال "nibble" هي مجموعة 4 bits . مثال 1110 تسمى nibble
ال Octet هي مجموعة 8 bits مثال 1001 1000 تسمى Octet
ال Word هي مجموعة 16 bits مثال 1000 1010 1111 1010 تسمى Word تحتوي على 2 octets مايعادل 4 nibble
ال word double هي مجموعة 32 bits مثال 1110 1010 1110 1100 1010 1110 1100 1010 .
يعني يحتوي على 2 word و 4 octets و 8 nibble ي .
تنظيم الذاكرة
يوجد ملايين المولدات في الذاكرة ، منها مايحتوي على الألون ومنها مايحتوي على الأناشيد ومنها مايحتوي على مقاطع فيديو ... إلخ
ذا كانت كل البيانات تُخزن في المولدات فمذا يفعل الكمبيوتر لكي لا يقوم بالخلط بين البيانات ؟
من حسن حظنا أنه يوجد مايسمى " تنظيم الذاكرة " أي أن الذاكرة منظمة بشكل دقيق .
يتم ترتيب المولدات على شكل شرائط وكل شريط يحتوي على 8 مولدات .
إذا فالذاكرة تحتوي على ملايين الشرائط وكل شريط يحتوي على 8 مولدات .
يعني أن الشريط يمكن له أن يخزن 1octet بما أنه يتكون من 8 مولدات .
هذه الشرائط مرقمة
الشريط الأول يحمل الرقم 0
الشريط الثاني يحمل الرقم 1
الشريط الثالث يحمل الرقم 2.. إلخ
ونسمي هذا الرقم " عنوان "
وبفضل هذا العنوان يتمكن الكمبيوتر من التعرف على الذاكرة ، فعندما يخزّن معلومة ، يضعها في
عنوان محدد . وعندما يطلب البرنامج لاحقا إستعمال هذه المعلومة ، يقوم الكمبيوتر بالبحث عليها
في العنوان الذي ضعها فيه .
بعض القواعد المهمة :
لا يمكننا تخزين إلا معلومة واحدة في كل عنوان .
هذا يعني أن حتى إذا كان لي معلومة تأخذ أقل من 1 bits 8 = )octet )
فسأكون على أية حال مظطرإلى إستعمال كل الشريط .( يحتوي على 8 bits)
لو فرضنا أننا نريد تخزين حياة لاعب في لعبة ، التي تساوي 22 (يعني 10110 في النظام الثنائي) .
يعني أنا محتاج إلى 5 bits . ومع ذلك سأقوم بإستعمال كل الذاكرة التي يحويها " العنوان " يعني 1 octet الذي يساوي 8 bits .
سأقوم إذا بتخزين 0110 0001 في الذاكرة .===.> الأصفار الي أضفتها أمام العدد لا يغيرون من
قيمته ( مثل ماهو في النظام العشري 00022 = 22 )
لا يمكننا إستعمال أقل من 1 octet طيب ..
لكن هل يمكننا إستعمال أكثر من 1 octet ؟ م
بكل بساطة نقوم بتخزين بياناتنا على عديد من الأشرطة المتتالية .
نأخذ مثال : تصوروا أننا سنقوم بتخزين (word=16 bits) في العنوان 6 .
نأخذ كمثال هذآ للعدد الثنائي : 1011 0111 1011 1100 .
فنقول إلى الكمبيوتر قم بتخزين word 1100 1011 0111 1011 في العنوان رقم 6 ، فيقوم الكمبيوتر أوتوماتكيا بتخزين
1011 0111 في العنوان رقم 6 ويخزن 1011 1100 في العنوان رقم 7 . ( بما أن العنوان الواحد لا يمكن له أن يحتوي على أكثر من 8 bits )
ثم بعد ذلك إذا طلبت من الكمبيوتر أن يمدني بword التي يشير إليها العنوان 6 فسيبعث لي بطريقة
أوتوماتكية محتوى العنوان 6 ومحتوى العنوان 7 وفي المقابل إن طلبت منه أن يمدني ب octet التي
تقع في العنوان 6 فسيمدني بمحتوى العنوان 6 فقط أي 1011 0111 .
و إن طلبت منه أيضا أن يمدني بال octet التي تقع في العنوان 7 فسيمدني بمحتوى العنوان 7 أي 1011 1100
طيبا من الآن فصاعدا سنسمي الأشياء بمسمياتها فعوض أن نسمي " أشرطة " نسميها " مكان الذاكرة "
معنى كلمة بايت (Byte) ة
.
[RIGHT] كما رأينا ال octet والword والdouble word والnibble
الbyte تشير أيضا إلى كمية من bit لكنها تختلف عليهم إذ أن هذه الكمية ليست ثابتة على
الإطلاق ، فممكن أن تتغير من جهاز إلى جهاز . إذا byte هي " كمية من bits تساوي عدد bits التي
يحويها "مكان من الذاكرة "
كم عدد bit التي يمكن أن يحتويها مكان واحد من الذاكرة ؟
الذين تابعوا معي من الأول يستمكنون من الإجابة ..
طيب .. 8 bit .(أتحدث هنا عن حواسيبنا ) لكن توجد آلات أخرى لايكون فيها المكان من الذاكرة يحتوي على 8 bit .
مثال : إذا تحدثنا عن جهاز يحتوي كل مكان للذاكرة فيه 4 " مولدات " (أي أن كل مكان يمكنه أن يخزن 4 bit ) فاbyte هنا تساوي 4 bit .
أما إن تحدثنا عن كمبيوتر كأجهزتنا الذي ز يحتوي كل مكان للذاكرة فيه 8 " مولدات " (ي أن كل مكان يمكنه أن يخزن 8 bit)
فاbyte هنا تساوي 8 bit.
يني أن في حواسيبنا byte تساوي 1 octet وهذا لايعني أن الكلمتان مترادفتان .
فقد إستعملت كلمة byte للإشارة إلى حجم البيانات في مكان واحد من الذاكرة
في أمان الله
مواضيع مماثلة
» ﬗ▁▂▃▅▆▇★☀二【«دراسه ونقاش لكل موضوعات الفوركس»】二☀★▇▆▅▃▂▁ﬗ
» الدرس الأول في اختراق المواقع
» #HTML : الدرس الأول - التقديم
» 5-دورة صيانة الكمبيوتر الوحدة الثانية الدرس الثالث
» 6- دورة صيانة الكمبيوتر الوحدة الثالثة الدرس الاول
» الدرس الأول في اختراق المواقع
» #HTML : الدرس الأول - التقديم
» 5-دورة صيانة الكمبيوتر الوحدة الثانية الدرس الثالث
» 6- دورة صيانة الكمبيوتر الوحدة الثالثة الدرس الاول
العالم العربي :: الكمبيوتر والجوالات وتطويرالمواقع والمنتديات :: الكمبيوتر والأنترنت :: التطوير ولغات البرمجة
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى