الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مقدمة "المقدمة"... بنية الحاسوب

بدأه A.S Hack في 12 أغسطس 2010 · 7 رد · 8,026 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بعدما رأيت تحمس أخي Z3r0n3 في قسم الأسمبلي، اشتعلت حماسا معه فقررت أن أجتهد وأضع ما عندي...

سأبدأ مع من نقطة الصفر، التي أضنها ستكمل دروسZ3r0n3 ... دعونا نبدأ التحدث في بنية الكمبيوتر

[title]

1.1 مصطلحات ورموز أساسية

Basic Terms and Notation[/title]

الترميز الذي يتعامل معه الكمبيوتر هو الـ 1 و 0، كل 1 أو 0 يُسمى بت (bit) وهو اسم منحوت من المصطلح الانجليزي Binary digit،

وقد أتفق على أطلاق اسم بايت (byte) على المجموعة المكونة من ثمانية بتات (8 bits)، ومن ثم هناك المصطلح كلمة (word)

الذي يعبر عن مجموعة البايتات التي يتم معالجتها في وقت واحد(معا)، و العدد المضبوط من البتات الذي يمثل كلمة (word) يتباين

تبعا لتباين نوع نظام المعالج، فمثلا الكلمة (word) في معالج بينتيوم Pentium هي 4 بايت أو 32 بيت.

غالبا ما تقاس السعة التخزينية الخاصة بأجهزة التخزين كالقرص الصلب بقوى الأساس 2 ، ويمكن قياسها "اصطلاحا" بقوى

الأساس 10 كما هو واضح في الجدول.

power.jpg

وفي البيئة التجارية، تستعمل الأسواق قوى الأساس 10 للإشارة لحجم السعة التخزينية للأقراص الصلبة مثلا، ويمكن معرفة الحجم

الأصلي (تضاعفات قوى الأساس "2") عن طريق ضرب حجم السعة التخزينية (التجارية) في معامل تحويل، فمثلا لدينا قرص صلب

سعته التخزينية التجارية 5 GB، فيكون حجم السعة التخزينية الحقيقية هي:

eq-memsz.jpg

[title]1.2 نظرة برمجية

Programming View[/title]

لا بد من وجود وسيلة يتخاطب بها الإنسان مع أجهزة الكمبيوتر، وكما المعتاد فإن هذه الوسيلة التخاطبية يطلق عليها "لغة"،

ويمكن التخطاب مع الكمبيوتر بنوعين من اللغات هما، لغات عالية المستوى ، ومنخفضة المستوى

(High-level languages & Low -level languages)).

الفروق بين النوعين كثيرة ومن حيثيات مختلفة، فمن ناحية السهولة فإن اللغات الـ High-Level تعتبر الأنسب للمبرمجين، كما

أنها الأسرع في كتابة أكوادها (وليس تنفيذها)، بينما تتيح اللغات ال Low-Level كالأسمبلي تحكم مثالي للعتاد الصلب

(Hardware)، فيمكن عن طريق الأسمبلي تحديد المواقع التخزينية والمسجلات بكل سهولة ودقة.

layer.gif

يوضح الشكل أعلاه درجة المستوى الذي تستوطنه أنواع لغات البرمجة، من الواضح أن لغة الآلة

(Machine language)، هي أدني اللغات إرتقاء عن منظومة العتاد الصلب ، ثم تليها لغة التجميع (الأسمبلي)، حيث يبدأ في

هذه اللغة ظهور النص المقروء باللغة الإنجليزية على غرار لغة الآلة الذي أصطلح لها ترميزا مكونا من الصفر والواحد فقط.

وجب التنبيه فقط على أن اللغات الراقية (عالية المستوى)، تترجم عن طريق برنامج يُسمى compiler إلى لغة الأسمبلي

وهذه الأخيرة تترجم إلى لغة الآلة باستخدام برنامج آخر يُسمى Assembler، كما يمكن للغة الراقية أن تترجم مباشرة إلى

لغة الآلة كما هو موضح في الشكل أدناه.

compilers.gif

[title]1.3 نظرة بسيطة في بنية الكمبيوتر[/title]

بنية الكمبيوتر الداخلية المؤلفة من المعالج والذاكرة وأجهزة الادخال\الاخراج ، تشكل شبكة ترابط منتظمة، تسمى هذه الشبكة

الترابيطة بـ "ناقل المنظومة" (system bus) وهذا الأخير يحوي ثلاثة نواقل أساسية هي: ناقل العنوان (Address bus)، و ناقل

البيانات (Data bus)، وناقل التحكم (Control bus)، كما هو واضح في الشكل أدناه.

يحدد عرض "ناقل العنوان" عدد مواقع الذاكرة الفيزيائية القابلة للعنونة من قبل المعالج، ويستفاد من عدد المواقع في ايجاد

حجم الذاكرة، إذ من المعروف أن حجم أي ذاكرة يحسب بمعادلة بسيطة هي:

عدد المواقع في الذاكرة × عدد البايتات الموجودة فيها "الطول × العرض".

databus.gif

وعدد المواقع في الذاكرة هو 2x ،حيث x هو عدد نواقل العنوان (number of address bus)، وعدد البايتات هو عدد نواقل البيانات\8,

وكمثال افرض أن لدينا ذاكرة لها 32 ناقل عنوان (address line) و 64 ناقل بيانات (data bus or line) فيكون حجم الذاكرة هو:

eqmb.gif

eqsmb.gif

هذا ما كان بإيجاز عن ناقل العنوان وناقل البيانات، أما بالنسبة لناقل التحكم، فهو ناقل يتبنى ويدير مجموعة من إشارات التحكم،

كإشارات القراءة من الذاكرة أو الكتابة إلى الذاكرة، وإشارات المقاطعات (Interrupts)، وإشارات طلب حيازة ناقل معين (bus request)،

وإشارات تخويل حيازة ناقل لجهة معينة (bus grant)، كذالك إشارات القراءة\الكتابة من\إلى أجهزة الإدخال\الاخراج ..الخ.

[title]

1.4 نظرة بسيطة في تصميم بنية الكمبيوتر.[/title]

يتم تصميم بنية الكمبيوتر (المعالج) أوليا على مستوى البوابات المنطقية (Logic Gates)، حيث يمكن للبوابات المنطقية مجتمعة

مع الدارات المتكاملة (Integrated Circuit) تكوين وحدات معالجة ذات وظائف معينة ومتنوعة.

datapath.gif

الشكل أعلاه يوضح تركيب المعالج بشكل مبسط، ومثلما يتبين أنه يتكون من ثلاث عناصر أساسية هي وحدة الحساب والمنطق (ALU)،

و وحدة التحكم (control unit)، ومجموعة من الذاكرات الصغيرة السريعة والتي تسمى مسجلات (registers).

تقوم وحدة التحكم بإحضار التعليمات (instructions fetch) من الذاكرة الرئيسية (Main Memory) وفك ترميزها لمعرفة

نوع التعليمة (anding, oring, adding, subtracting…).

كما تقوم المسجلات بدور ذاكرة مؤقتة تخزن التعليمات والبيانات التي ستحتاجها وحدة الحساب والمنطق (ALU) أو وحدة التحكم (Control Unit)،

حيث أن التعامل مع الذاكرة الرئيسية مباشرة غير مجدي للبطأ الشديد نسبيا مع سرعة المعالج، لذلك يتم جلب التعليمات إلى مسجلات

المعالج كي تتم معالجتها بأسرع وقت ممكن بعيدا عن بطأ استجابة الذاكرة الرئيسية.

ونشير مبدأيا هنا بأن المعالج يحتوي على بعض المسجلات الخاصة، والمسجلات الخاصة ماهي إلا مسجلات تقوم بتخزين قيم أو بيانات

خاصة وسنأتي على تفصيلها لاحقا إن شاء الله، فمن أمثلة المسجلات الخاصة ما يسمى بمسجل عداد البرنامج PC)Program Counter)،

حيث يعمل هذا المسجل كمؤشر (Marker) يشير إلى عنوان التعليمة التالية التي يفترض من المعالج تنفيذها.

نجد بعض المعالجات تشير إلى مسجل عداد البرنامج (PC) بإسم آخر أكثر واقعية هو مؤشر التعليمات IP )Instruction Pointer)

إلا أن الاسم الأول (PC) يعد الأكثر تداولا.

يوجد كذلك مسجل خاص مهم يسمى مسجل التعليمات IR (Instruction Register)، يحوي هذا المسجل التعليمات التي تنفذ

حاليا في وحدة الحساب والمنطق.

الجدير بالذكر أن بعض هذه المسجلات غير مرئي للمبرمج (أي خارج عن تحكم المبرمج له)، إلا أن معظمها قابل للبرمحة والتحكم.

البيانات الموجودة في المسجلات العامة تعبر إلى وحدة الحساب والمنطق كدخل (Input) عن طريق نواقل دخل وحدة الحساب

والمنطق (ALU Input Buses)، فعلى سبيل المثال الشكل التالي يوضح ناقلين A و B، هذان الناقلان يغذيان وحدة الحساب والمنطق

بالقيم (Operands) المراد إجراء عمليات معينة عليها، ويكون خرج (output) وحدة الحساب والمنطق متجها لمجموعة من المسجلات

عبر الناقل C، المسجلات المظللة والواضحة في الشكل، هي مجموعة مهمة من المسجلات الخاصة، بها أربعة مسجلات مميزة، أشرنا

لاثنين منها آنفا هما مسجل عداد البرنامج (PC)، ومسجل التعليمات (IR)، وبقي مسجلان هما (MAR) و (MDR).

regst.gif

أما مسجل (MAR) أي مسجل عنوان الذاكرة (Memory Address Register) فهو مسجل يحمل عنوان الذاكرة للتعليمة المراد تنفيذها،

ويقوم بأخذها من المسجل PC، بينما يحمل المسجل (MDR) أي مسجل بيانات الذاكرة (Memory Data Register)، يحمل البيانات....

بمعنى آخر، يمكن لخرج وحدة الحساب والمنطق أن يسلك أحد سبيلين ، إما أن يذهب كما أسلفنا إلى مسجلات معينة، أو أن يذهب

مباشرة إلى الذاكرة الرئيسية، فعندما ُيراد كتابة خرج وحدة (ALU) إلى الذاكرة يجب أولا أن تذهب قيمة هذا الخرج إلى مسجل (MDR)

ثم ما تلبث وأن تكتب إلى عنوان الذاكرة الذي يحمله المسجل (MAR).

في المعالجات من نوع RISC -Reduced Instruction Set Computing – سنأتي على تفصيل النوعيات لاحقا إن تسنى لنا الوقت- يذهب

خرج وحدة الحساب والمنطق دائما إلى أحد المسجلات، هذا النوع من المعالجات (مثل:ARM, MIPS) له تعليمات خاصّة لنقل البيانات

في ما بين المسجلات والذاكرة .

الشكل التالي يُمثل عينة لوحدة حساب ومنطق بسيطة التصميم(مصممة باستخدام بعض البوابات المنطقية)، تستطيع هذه الـALU انجاز العمليتين

المنطقيتين (AND و OR) للدخلان A و B ، كما تستطيع القيام أيضا بالعمليتين الحسابيتين الجمع والطرح (Adding(A + B +Cin و A - B -Cin)Subtracting)،

قد تلاحظ – بنظرة مبدئية- أن لا معنى وظيفي لمثل هذه الوحدة وعملياتها السابقة، وهذا لأنك تنظر لها بنظرة منخفظة المستوى (Low-Level)، ولهذا السبب

نشأت لغات البرمجة عالية المستوى، فعلى مستوى أكوادها يرى المبرمج معنى ما يكتب بسهولة أكبر مما يراه على مستوى منخفض مثل مستوى لغة التجميع

(الأسمبلي) أو لغة الآلة، والحقيقة كما ذكرنا سابقا أن أكواد اللغة عالية المستوى يكون مصيرها في النهاية إلى أكواد كثيرة من لغة الأسمبلي

(ORING, ANDING, EXORING, ADDING..) فلغة الآلة الصعبة القراءة بالنسبة لنا.

mux.gif

[title]1.5 المعالج

Processor[/title]

يعمل المعالج كأداة تحكم، تتحكم بجميع الأحداث والخدمات التي يزودها نظام معين، تُنجز الأحداث التي يقوم بها المعالج على

فترات زمنية منتظمة بفعل إشارة من عداد توقيت (Clock)، إشارة التوقيت هذه تكون على شكل موجة دخل (Input) مربعة

(Square Wave) تكوّن ما يُسمى بـدورة مؤقت (Clock cycle)، و يُسمى الزمن اللازم لإكمال دورة مؤقت بزمن المؤقت، وكمقياس

متداول يُستعمل مصطلح تردد المؤقت (Clock Frequency) لقياس سرعة المعالج، ووحدة قياس التردد هي الهيرتز (Hz)،

والتردد يساوي ناتج قسمة عدد الدورات على الزمن المستغرق لإنجاز هذه الدورات.

عادة تُستخدم مضاعفات الهيرتز كمقياس لسرعة المعالج مثل الميجاهيرتز (MHz) والجيجاهيرتز (GHz)، سنناقش إشارة المؤقت

(Clock signal) بمزيد من التفصيل في دروس قادمة إن شاء الله.

يقوم المعالج وفي دورة المؤقت الواحدة (في الدورة الواحدة) بمعالجة ما يُسمى بدورة تنفيذ التعليمة (Instruction Executing Cycle)

التي تتضمن 3 خطوات أساسية هي:

1- إحضار التعليمة من الذاكرة الرئيسية.

2- فك ترميز التعليمة (Decoding) لمعرفة نوع العملية المراد تنفيذها.

3- تنفيذ التعليمة في وحدة الحساب والمنطق.

ولو أردنا الدخول لتفصيل أعمق، فإن هناك خطوة مهمة يقوم بها المعالج الجديد بعد الخطوة الأخيرة من تنفيذ التعليمة وهي التأكد

من عدم وجود مقاطعة (Interrupt)، وإلا ذهب لمعالجة تعليمات المقاطعة، ولهذا الموضوع مزيدُ تفصيلٍ إن شاء الله.

instcyc.gif

الشكل أعلاه يوضح خطوات تنفيذ التعليمة في المعالج، نلاحظ أن الخطوة الثالثة (تنفيذ التعليمة) تشمل إحضار القيم (Operands)

المراد إجراء عمليات معينة عليها، ثم تنفيذ العملية على هذه القيم، ومن ثم كتابة ناتج العملية.

عدة تساؤلات قد تتبادر في الذهن الآن، مثلا من يزوّد المعالج بالتعليمات المراد تنفيذها؟، ومن يقوم بوضع هذه التعليمات

في الذاكرة الرئيسية؟، وكيف يعرف المعالج أن التعليمات هذه تقع في العنوان الذي يعينه فعلا؟

إن لنظام التشغيل (Operating System) الدور الرئيسي لمثل هذه الوظائف، فعندما يقوم المستخدم بتشغيل برنامج ما، يقوم نظام

التشغيل بتحميل البرنامج في الذاكرة الرئيسية، ومن ثم يشير للمعالج إلى موقع هذا البرنامج، ثم يتكفل المعالج بتنفيذ تعليمات

وأوامر هذا البرنامج.

كل ما ذكرناه حتى الآن وما سنذكره عن بنية الحاسوب يندرج تحت معمارية أو هيكلة تُسمى هيكلة فون نويمان (Von Neumann)

أو هيكلة (John van Newman)، وفون نويمان هذا هو رياضي أمريكي هنغاري المولد، وضع القواعد الأساسية لبنية الحاسب (مع معاونيه)

عام 1954، ونستطيع أن نجمل هذه القواعد في ثماني نقاط:

1- هيكلة الحاسبات على أساس وحدات منفردة لكل منها مهمتها الخاصة بها.

2- تقسيم الذاكرة الداخلية إلى وحدات أولية تدعى بالخلايا cells

3- ترفق كل خلية برقم خاص يدعى بالعنوان (Address) تخزن الخلية وحدة أولية واحدة من المعلومات.

4- يستعمل نظام الترقيم الثنائي (Binary Representation) لتشفير كل التعليمات و البيانات.

5- تخزن الأوامر و البيانات في نفس الذاكرة الداخلية (المركزية) (خلافا لهيكلة هارفارد).

6- تتابع ترقيم عناوين خلايا الذاكرة التي تحفظ الأوامر المتتالية التنفيذ.

7- تنفذ التعليمات(instructions) بشكل تتابعي - (يبدأ الثاني بعد انتهاء الأول ).

8- يمكن توقيف ترتيب تنفيذ التعليمات بواسطة تدخلات شرطية أو لا شرطية.

الجدير بالذكر أن فون نويمان نجح في جعل الكمبيوتر يخزن وينفذ برامج عديدة عام 1946، وسُميت فكرته القائمة على الهيكلة السابقة

بمبدأ تخزين البرنامج (stored program model).

[title]1.6 أنابيب التجزئة

Pipelining [/title]

لا بد أنك تدرك بأن وحدة التحكم (control unit) تستغرق وقت معين حتى تحضر التعليمات من الذاكرة الرئيسية لوحدة الحساب والمنطق،

وكما ذكرنا سابقا أن المعالج وعملياته أسرع بكثير من الذاكرة الرئيسية، لذا فإن إحضار تعليمة معينة من الذاكرة يجعل المعالج ينتظر التعليمة

حتى تصل فينفذها، وهذا الوقت الذي ينتظره المعالج يعتبر وقت ثمين لم يتم استغلاله!.

من هذا المنطلق ظهرت فكرة أسلوب أنابيب التجزئة (Pipelining)، هذه الفكرة قائمة على إمكانية معالجة تعليمة ما بسلسلة من الخطوات أو

المراحل المستقلة تنفذها وحدات جزئية مستقلة من وحدة التحكم، ‏وتستطيع هذه الوحدات الجزئية كونها مستقلة أن تتزاحم على العمل بنفس

الوقت ولن يعود ضروريا أن تنتظر معالجة تعليمة ما اكتمال معالجة التعليمة السابقة لها وبالتالي في أية لحظة ستلاحظ أن وحدة التحكم تحوي

عددا من التعليمات كل منها في إحدى مراحل معالجتها. ويمكن تشبيه الوضع بوحدة تصنيع حيث تتواجد عدة واحدات من المنتج على خطوط

تجميع في مواقع العمل المختلفة وكل من هذه الوحدات في إحدى مراحل تجميعها.

هذا الأسلوب يقتضي قراءة عدد من التعليمات من الذاكرة قبل حاجة وحدة التحكم لها، لذلك توضع مثل هذه التعليمات في مسجلات تعمل

بمبدأ الطابور (Queue) تسمى ( Prefetch buffers)، وبهذه الطريقة لن تضطر وحدة التحكم للانتظار غير المجدي.

t1t1.gif

يوضح الشكل أعلاه مبدأ عمل أنابيب التجزئة بشكل مبسط، ، الجدول التالي يوضح الاختصارات ببساطة:

t2t2.gif

[title]1.7 معالجات RISC و CISC[/title]

أشرنا سابقا وبشكل مقتضب لنوعين من أنواع المعالجات هما معالجات حوسبة التعليمة المختزلة (Reduced Instruction Set Computing: RISC)،

ومعالجات حوسبة التعليمة المركبة (Complex Instruction Set Computing: CISC)، وكمقدمة لهذا الموضوع، سنتطرق للمحة تاريخية عن هذين النوعين.

في الفترة الممتدة من 1970 إلى تقريبا 1982 كانت المعالجات من النوع CISC هي الأكثر اتباعا وانتشارا حينها، أما حديثا فقد بدأت الموازين تتغير،

وأصبح التوجه الأكثر يميل للنوع RISC، ولفهم أسباب ومعايير هذا التغير لا بد لنا أن نفهم مبدئيا أغراض و خصائص كل نوع.

يشير الاسم CISC أي "حوسبة التعليمة المركبة"، يشير إلى أن المعالج يستطيع التعامل مع تعليمة (instruction) ذات وظائف متعددة، والتعليمة

ذات الوظيفة المتعددة أو التعليمة المركبة هي تعليمة تضم أو تتركب من عدد من التعليمات الأولية، فمثلا، عملية "جمع" عددين هي تعليمة أولية،

بينما التعليمة التي تقوم بنسخ عنصر من مصفوقة إلى أخرى ومن ثم تحديث المصفوفتين هي تعليمة مركبة، مثل هذه التعليمات المركبة لا تتواجد في

أنظمة RISC التي تتعامل مع تعليمات أولية في غاية البساطة مثل عملية الجمع.

من المثير الآن أن نتسائل لمَ كان المصممون في السبعينيات من القرن الماضي ينتهجون في تصاميمهم طريقة المعالجات ذوات حوسبة التعليمة المركبة

CISC بدلا من ذوات التعليمة المختزلة RISC ؟!

الحقيقة أن هناك عدة عوامل، أحد هذه العوامل أن الذاكرة كانت باهظة الثمن، ولك أن تتخيل مدى المغالاة في ثمنها إن علمت أن ذاكرة

بحجم 16 KB كانت تكلف قرابة 500 دولارا! .

على هذا كان المصممون يومها يطورون المعالجات بنهج تقنيةCISC ، ذلك أنهم -وفي ذلك الوضع- كانوا بحاجة لتقليل حجم كمية الذاكرة المطلوبة لتخزين

البرامج، وحيث أن التعليمة في معالج CISC تكون مركبة، أي أنها تحوي في طيّاتها عدد من التعليمات الأولية، كانت أكواد البرامج صغيرة نسبيا اذا ما قورنت

بما لو تمت كتابتها لتعمل في معالجات RISC.

ما وجب ملاحظته أننا حينما نقول أن التعليمة في معالج CISC لا تقوم بوظيفة واحدة بل بعدة وظائف -أي أنها مركبة-، فإن هذا يقتضى أن يكون العتاد الصلب

معقد التركيب كي يتسنى له القيام بالوظائف المتعددة الخاصة بالتعليمة الواحدة!

إلا أن الأمر تمّ بعدها على غير ذلك!

لي تكملة ..في حين فراغ..

ملاحظات ولفتات متعلقة بالموضوع:

1- من الطريف أنني وجدت مصادر عربية تترجم مصطلح البايت (byte) إلى "الثمانيّ" بتشديد الياء!، و العجيب أني وقفت على موقع في الانترنت يشير للبت (bit) بمصطلح عربي منحوت من "الرقم" و "الثنائي"، فكان البت على هذا العُرف هو "الرقن" !

2- اللغات عالية المستوى تُسمى أيضا "لغات راقية".

3- بعض المصادر العربية تشير للعتاد الصلب ( Hardware ) في الكمبيوتر بمسمى "الصلائد"، وتشير للبرمجيات ( Software ) بمسمى "الطريات"، راجع على سبيل المثال "الجيل الخامس للحاسوب" ترجمة مدحت محفوظ.

4- ناقل المنظومة له ترجمات أخرى تعتمدها بعض المصادر مثل "مَسرى النظام".

5- وقفت على مصادر عربية تتناول مفهوم أنابيب التجزئة (pipelining) بالمصطلح "التوارد"، شاهد على سبيل المثال "بنيان الحواسيب والمعالجات الصغرية" منشورات جامعة دمشق.

6- مبدأ الطابور ، ينص على أن أول تعليمة جاءت هي أول تعليمة ستعالج، يمكنك تخيل ذلك على شكل طابور من التعليمات تصطف تباعا واحدة تلو الأخرى، الاسم العربي الآخر لمبدأ الطابور هو "الرتل" كما في كثير من المصادر.

7- المسجل MDR يُشار له في بعض المصادر بـ (MBR)، أي Memory Buffer Register

المراجع

Fundamentals of Computer Organization and Design

Sivarama P. Dandamud

Fundamentals of computer organization and architecture

Mostafa Abd Albarr & Hesham EL Rewini

تم تعديل هذه المشاركة بواسطة A.S Hack في 12 أغسطس 2010 في 05:47

3

" إن الله كتب الإحسان على كل شيء"

::

الإرادة ... تحقق السيادة.

#2

مشكور اخي على هذا الشرح الجميل

وإن شاء الله في ميزان حسناتك

وانتظر المزيد من الدروس

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

#3

السلام عليكم ورحمة الله وبركاته،

لي سؤال.. هل تم نقل الموضوع من موقع/منتدى/مرجع ما ؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

شرح ممتاز جداً .

ولي اقتراح للدرس القادم (إذا لم يكن هناك في ذهنك شيء آخر و دون أن أثقل عليك ):

ما رأيك أن يكون الدرس القادم عن مفهوم الـbits داخل الذاكرة و التعامل معه في المعالج مثل ( bitflag , bitoperators ......)

#5

أهلا بمروركم الكريم أخواني...

ayash .. شكرا لك أخي

Xacker .. نعم أخي وضعت الكتب باﻷسفل (في آخر الموضوع)، لكنه اجتهاد شخصي في الترجمة والتجميع والانقاء مع إضافات كثيرة مني (يعني مش ترجمة حرفية) .. يمكن الرجوع للكتب فهي متوفرة على الشبكة.

بالمناسبة كنت قد كتبت الموضوع منذ فترة .. يعني مش بين ليلة وضحاها :happy:

yahya91 ..شكرا لك سأرى في بحث ذلك بإذن الله

تم تعديل هذه المشاركة بواسطة A.S Hack في 12 أغسطس 2010 في 13:15

" إن الله كتب الإحسان على كل شيء"

::

الإرادة ... تحقق السيادة.

#6
A.S Hack كتب:

Xacker .. نعم أخي وضعت الكتب باﻷسفل (في آخر الموضوع)، لكنه اجتهاد شخصي في الترجمة والتجميع والانقاء مع إضافات كثيرة مني (يعني مش ترجمة حرفية) .. يمكن الرجوع للكتب فهي متوفرة على الشبكة.

بالمناسبة كنت قد كتبت الموضوع منذ فترة .. يعني مش بين ليلة وضحاها :happy:

شكراً على التوضيح.

سبب سؤالي هو: رابط

بالتوفيق وبانتظار جزء الذواكر ;)

تم تعديل هذه المشاركة بواسطة Xacker في 12 أغسطس 2010 في 12:49

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7
Xacker كتب:

شكراً على التوضيح.

سبب سؤالي هو: رابط

بالتوفيق وبانتظار جزء الذواكر ;)

كفاك تنبيشا ..هنا وهنك :wacko:

حتى الكاش لجوجل لم يسلم منكم...

:lol:

" إن الله كتب الإحسان على كل شيء"

::

الإرادة ... تحقق السيادة.

مواضيع مشابهة