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

لنكون سلسلة دروس مترابطة !

مغلق
بدأه الشبح الأسود في 5 نوفمبر 2006 · 13 رد · 4,519 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أنا رأى كل واحد من يمثل في هذا الموقع رمز أن كان , ما يسوى شي >>>>> زي :s

أو المميز والحمد الله هم كثيرين :D

وأنا رأي أنا نسوي سلسلة دروس لم تخصص في شئ وأنما بنبدأ من الأساسيات حتى نصل إلى الأحتراف ....

وللأسف أنا ما عندي أي لمعان في هذا القسم السبب >>>>>>>>>>>>>>>> "مبتدئ" لكن أنا بكتب لآخر شي أعرف الآن لكن بعد هذا واحد منكم يواصل و كمل لأن أذا وقفت علي أنا ما أقدر أكون معطاء فرجاء الرجاء أنكم تواصلو !! :(

نمبدأ :

مصطلحات :

الست عشري Hexadecimal

النظام الست عشري يبدأ من 0 إلى 15 , ولكن الأرقام من 10 إلى 15 تتكون من وحدتين , وهذا سيخلط الأمور , ولهذا تم تعويضها بحروف كما يشير الجدول الآتي :

post-68504-1162743357_thumb.gif

ملاحظة :يشار الرقم في النظام الست عشري بعدة رموز.

في لغة السي ( Ox14 ) = في لغة الباسكال ( 14$ ) = في لغة التجميع ( h14 )

البايت Byte :

البايت هو متوالة من 8 بتات , فأذا كان البايت مرمزًا (Signed) فإنه يمكنه أخذ قيمة بين 128- و 128+ , أما إذا كان البايت غير مرمزًا فإنه أخذ قيمة محصوره بين 0 و 255 أي 256 حالة = ( 2^8 ).

عندي كم مستطلح ( واحد كسلان >>>>>>>>. :( :( ) بكره نشاء الله

إن شاء الله أحد يكتب درسه مترابط مع إلي كتبته حتى نوصل للأحتراف يا رب :lol:

تم تعديل هذه المشاركة بواسطة الشبح الأسود في 5 نوفمبر 2006 في 19:34

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#2

عرفنا معنى hex ومعنى byte

ثم ماذا بعد ؟

قطرة الماء تـثـقب الحجر.. لا بالعنف. لكن بتكرار المحاولة

at4re.gif

منتديات الفريق العربي للهندسة العكسية 不喜欢的勿入! www.at4re.com

#3
اقتباس
عرفنا معنى hex ومعنى byte

ثم ماذا بعد ؟

إن شاء الله الله يقويني :)

الكلمة Word : بما أن البايت يشغل 8 بتات , فأن الكملة تشغل 16يت , وبالتالي يمكن أن نقول أن الكلمة تحتوي 2 بايت , إذا كانت الكلمة مرمزة , فأنها قادرة على احتواء قيمة بين – 32768 و + 32767 , أما إذا كانت غير مرمزة فقيمة المحتوه تكون محصوره بين 0 و 65535 .

الكلمة المضاعفة Dword أو Double Word : وتشغل الكلمة من هذا النوع قيم ذات 4 بايت فأذا كان مرمزة تكون – 2147483648 & + 2147483647 أما إذا كانت غير مرمزة فأمكانها حصر قيمة تتراوح بين 0 و 4294967295 .

السجل Register : هو فراغ ذاكري موجود بصفة فيزيائية في قلب المعالج ( Processor ) والذي تحفظ فيه القيم أثناء معالجتها , في البداية LA & LB & LC & LD , ثم تطورت السجلات إلى 16 بت , وصارت مسمات XA & XB & XC & XD , ولكن أننا لو غيرنا الجزء السفلي بذلك قد غيرنا الجزء المنخفض من السجل XA & XB & XC & XD وكذلك لو غيرنا الجزء العلوي من XA & XB & XC & XD فأنن نغير في قيمته , ثم بعد وصول المعلجات 386 , تم الأنتقال إلى السجلات 32 بت , وصارت بالتالي تسمى بـ EAX & EBX & ECX & EDX .

post-68504-1162829185_thumb.gif

وينطبق نفس الشئ على السجلات القاعدية !!

السجلات القاعدية : هي السجلات AX & BX & CX & DX وهي سجلات ذات 16 بت.

اقتباس
المعالج, هو الجزء الذي يقوم بالعمليات الحسابية جميعها في الحاسب. فالمعالج موصل باللوحة الأم بطريقة خاصة ليقوم باستقبال المعلومات والبيانات من كافة أجزاء الحاسب و معالجتها ثم إرسال النتائج إلى الأجزاء الأخرى التي تعني بالإخراج و التخزين, و كل ما يقوم به الحاسب من عمل يقوم به المعالج بشكل كامل, كما انه لا يفهم و لا يعقل بل يقوم بالعمل المبرمج له بشكل كامل. و المعالجات تتطور بشكل سريع جدا فخلال شهور تظهر العديد من المعالجات السريعة , و من أشهر المعالجات توفرا في السوق هي معالجات بنتيوم. الفروق بين المعالجات : الفرق بين المعالج السريع و البطيء هي السرعة فقط , أما الأداء فيحددها مكونات الحاسب الأخرى , فلن يكون الحاسب سريعا بمجرد وضع معالج سريع , بل يجب أن تكون مكونات الحاسب أيضا سريعة لكي يكون الحاسب بكامله سريعا, و لكن هذا لا يعني أن المعالج المنخفض الجودة هو الجيد, بل يمكن أن يعطي نتائج منعكسة. المعالج السريع يستطيع تشغيل برامج لا يستطيع المعالج البطيء تشغيلها . توجد معالجات تستهلك الكثير من الطاقة فتزيد حرارتها مما يؤدي لانخفاض أدائها و جودتها. يجب أن تكون اللوحة الأم داعمة لنوعية المعالج الذي تود تركيبه و العكس صحيح.

post-68504-1162829553_thumb.jpg

post-68504-1162830625_thumb.gif

حياكم الله وأنا بحاول بألي أعرف

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#4

السلام عليكم

الأن ما عندي أشياء كثير أقدمها من ناحية البرمجة !!! :s

فبتكلم عن الهاردوير مو السفتوير !! :huh:

بنتعمق أكثر في Processor

post-68504-1162925445_thumb.gif

بكمل شرح لكل ما في الرسمه النشاء الله !! ;)

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#5

وحدة التنفيذ Execution Unit وحدة الملاءمة والناقل Bus Interface Unit :

يتكون المعالج من وحدتين منطقيتين هما :

1. وحدة التنفيذ Execution Unit (EU)

2. ووحدة الملاءمة و النقل Bus Interface Unit (BIU)

الأولى : تعمل على تنفيذ التعليمات.

الثانية : على نقل التعليمات و البيانات لإلى الأولى.

وتحتوي وحدة التنفيذ (EU) :

1. وحدة الحساب و المنطق Arithmetic Logic Unit) ALU).

2. ووحدة التحكم Control Unit) CU) .

3. ومجموعة مسجلات (Register).

× وتسمح هذه المكونات بتنفيذ تعليات حسابية و منطقية.

وتحتوي وحدة الملاءمة و الناقل (BIU) :

1. وحدة التحكم الناقل (Bus Control Unit) .

2. مسجلات المقاطع (Segment Register).

3. طابور التعليمات (Instruction Queue).

∞ تقوم وحدة BIU بالتحكم في الناقلات و نقل البيانات بين كل من وحدة التنفيذ EU وذاكرة و أجهزة الإدخال و الأخراج الخارجية , كما تقوم مسجلات المقاطع بالتحكم في عنونة الذاكرة , وتقوم وحدة ملاءمة الناقل BIU بوضع التعليمات في طابور مخصص لها في وحدة التنفيذ بعد جلبها من الذاكرة.

5bec52368f.gif

يتكون طابور التعليمات Instruction Queue من أربع بايتات على الأقل ( تبعا لنوع المعالج ) , ويخصص لوضع التعليمات فيه جلبها من الذاكرة بواسطة الوحدة BIU لذلك يوجد دائمًا طابور تعليمات جاهز لتنفيذه من وحدة التنفيذ EU.

c6f3999712.gif

التكمله بعدين إن شاء الله بسبب أختبارات !!! :wacko:

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#6

<-- تابع

وإن شاء الله أستفتو !! :^)

تعمل وحدة التنفيذ EU ووحدة الملاءمة والناقل BIU على التوازي , تحتفظ وحدة الملاءمة والناقل BIU بخطوة سابقة فعندما تقوم التنفيذ EU بتنفيذ تعليم تعمل وحدة BIU لجلب تعليم من الذاكرة ووضعه فب طابور التعليمات تنتظر دور تنفيذها أو جلب بيانات من الذاكرة أو أحد أجهزة الأدخال أو الأخراج , وتتم عملية الجلب Fetching والتنفيذ Execution في وقت واحد مما يؤدي لزيادة سرعة المعالج .

48875c2ddf.gif

للمعالجات 486 – 186 بنية خط أنبوب ضخ Single Pipeline يسمح بمعالجة المهام السابقة بتفرع أكبر , ولمعالج بنتيوم بنية خط أنبوب مزدوج Dual Pipeline لمعالجة عدة عمليات بالتوازي.

وسنتكلم موجزًا عن الذاكرة ولرطباطه بالمعالج :

الذاكرة Memory :

يحتوي الكمبوتر الشخصي على نوعين من الذاكرة الداخلية :

- ذاكرة الوصول العشوائي Random Access Memory) RAM) .

- ذاكرة الدائمة Read Only Memory) ROM) .

ترقيم بايتات الذاكرة تصاعديا بدءا من الرقم 0000 , ولكل بايت من الذاكرة بايت واحد .

وفقا لمخطط ذاكرة الكمبيوتر الشخصي 8086 الفزيائية تشكل الذاكرة RAM مقدار 640 كيلوبايت الأولى على لوحة النظام و المتوفرة في معظم أجهزة الكمبيوتر.

الذاكرة الدائمة ROM : تشكل من الشريحة شريحة الخاصة , وتقرأ منها دائما نفس البيانات و التعليمات التى وضعت فيها , تبدأ الذاكرة ROM BIOS بدءا من العنوان 768 k , تحتوي روتينات تتعامل مع أجهزة الأدخال و الأخراج كروتينات ضبط تحكم القرص الصلب Hard Disk Controller , توجد في الذاكرة ROM بدءا من العنوان 960 kb روتينات و بيانات التحكم بالوظائف الأساسية للكميوتر كالفحص الذاتي عند وصل التغذية Power On Self Test (POST) ونماذج نقط نمط الرسوم البيانية Graphics وروتين للتحمل الذاتي للقرص Disk Self Loader .

74461d8760.gif

تعالج ذكرة ROM استنهاض الكمبيوتر فعند وصل تغذية الكميوتر تقوم روتينات الذاكرة ROM بفحص النظام لتحميل بعدها الذاكرة RAM بمعلومات من قرص النظام .

3729abe422.gif

ويهتم المبرمج بذاكرة الوصول العشوائي Random Access Memory أو ذاكر القراءة و الكتابة Read Write Memory حيث يتم فيه تنفيذ البرنامج وتخزين البيانات مؤقتا.

إن شاء الله ما نقصر وياكم :D

وهذي صورة لأحشاء Processor

916028c251.jpg

ولا تنسو أنا أحنا لحد الأن نتكلم عن 4 & 8 :lol:

e6834e0379.png

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#7

لقيت أني لو نقلت بعض ما كتب لزيادة المعلومية فيه فائدة ولأن الموقع لا أظن أن يعارض سأنقل هذا الجزء من الموفع التالي : :lol:

Wikipedia

ذاكرة الوصول العشوائي

رام تعرف باسم ذاكرة الوصول العشوائي Random Access Memory واختصارها RAM وهذا النوع من الذاكرة مؤقت إذ أن المعلومات يتم تفريغها آلياً منه بمجرد إعادة التشغيل، وأحياناً عند إغلاق البرنامج الذي يستهلك جزء منها، وهذا النوع يحرص المحترفون (خصوصاً من يتركز عملهم على التصميم باستخدام برامج متقدمة كالفوتوشوب وثري دي ماكس وغيرها) على توفير أفضل الأنواع منها ويحرصون أيضاً على زيادتها لأنها المسئولة عن سرعة تنفيذ العمليات والمعالجة.

مكونات ذاكرة الوصول العشوائي

كل قطعة ذاكرة تعد دائرة متكاملة مركبة من ملايين الخلايا التي يكونها اتحاد الترانزستورات Transistors والمكثفات Capacitors ، بحيث يشكل كل ترانزيستور و مكثف خلية واحدة من خلايا الذاكرة، وكل خلية من هذه الخلايا تعادل بتاً واحداً من البيانات، ومعلوم أن البت bit أصغر وحدة من وحدات قياس الذاكرة وكل 8 بت تشكل بايتاً واحداً والبايت Byte هو المساحة الكافية لتخزين قيمة حرف واحد أو رقم أو رمز (والمسافة أيضاً تعادل بايت).

سبب تسميتها بذاكرة الوصول العشوائي

سميت بهذا الاسم لأنك تستطيع الوصول إلى أي خلية تريد بشكل مباشر ومن أي مكان، وهي على عكس ذاكرة الوصول التسلسلي Serial access memory واختصارها SAM والتي لا يمكنك الوصول لأي خلية فيها إلا بشكل تسلسلي كامل من البداية إلى النهاية.

==أنواع ذاكرة الوصول العشوائي==

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

النوع الأول SD-RAM أو SDR-RAM

هي اختصار للجملة Single Data Rate Random Access Memory والتي تعني ذاكرة الوصول العشوائي الديناميكية المتزامنة ذات النقل الأحادي . هذا النوع يقوم بنقل البيانات بسرعة مقبولة نوعاً ما، لكنه في المقابل يستهلك قدراً كبيراً من الطاقة مقارنة بالأنواع الأخرى لأنه يقوم بنقل بت مرة واحدة عند ارتفاع النبضة ثم يعود ليرفع بتاً آخراً بارتفاع النبضة .. وهكذا، وكلما زادت الوحدات أدى ذلك إلى زيادة سرعة المعالجة . وسرعة نقل البيانات فيها إما أن تكون 100 أو 133 ميجاهرتز.

===النوع الثاني DD-RAM أو DD-SDRAM===

هناك خلاف على تسميتها ، فالبعض يقول أنها اختصار للجملة Dual Data Rate Synchronous Dynamic Random Access أي ذاكرة الوصول العشوائي الديناميكية المتزامنة ذات النقل الثنائي ، بينما هناك من يقول أنها تعني Double Data Rate-Synchronous DRAM أي ذاكرة الوصول العشوائي الديناميكية المتزامنة ذات النقل المضاعف أو المزدوج، وكلاهما يؤدي لنفس المعنى، هذا النوع يؤدي ضعف أداء النوع الأول، فهي تعطي 2 بت في الثانية الواحدة بمعنى أنها تنقل بتاً لدى ارتفاع النبضة وآخراً عند انخفاضها . ويتميز هذا النوع عن سابقه بان لديه عرض نطاق مضاعف وهذا يمكنه من نقل كمية مضاعفة من المعلومات في الثانية قياسا لل sd-ram . كماأنه يستخدم قدراً أقل من الطاقة. .

DD-RAM II SDRAM أو إختصارا DDR 2

هي تطوير على DD-RAM يزيد مرة اخرى من عرض النطاق كما انه يستخدم قدرا اقل من الطاقة قياسا لل DDR ، ويتوقع ان يصبح الاوسع مستقبلا .

النوع الثالث RD-RAM

هي اختصار للجملة Rambus Dynamic Random Access Memory وتعني الخطوط الديناميكية لذاكرة الوصول العشوائي، وهذه الذاكرة تمتاز بسرعة مذهلة وأسعارها باهضة، ويرتكز عملها على أساس توزيع نقل البيانات ما بين الذاكرة والمعالج على أكثر من قناة. عن طريق تصغير حجم الناقل الأمامي من 32 بت (المستخدمة في الأنواع الأخرى) إلى 16 بت ومن ثم توزيع الحركة على أكثر من قناة تعمل بشكل خطوط متوازية (وهذا سبب تسميتها بالخطوط) ، وتعطي سرعات تردد عالية جداًَ تصل إلى 800 ميجاهرتز. وهذا النوع لا يعمل إلا مع معالجات بنتيوم 4 كما أنها تتطلب أنواعاً مخصصة من اللوحات الأم مثل إنتل 850. وتم التخلي عنها بسرعة بسبب إثبات ذاكرة DDR والجيل الجديد DDR 2 انهما يمكنهما إعطاء نتائج منافسة جدا وحتى متفوقة بتكلفة إقل .

وهذي صورة للأنواع المذكورة !! :huh:

4a1d1dda87.jpg

تم تعديل هذه المشاركة بواسطة الشبح الأسود في 11 نوفمبر 2006 في 15:12

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#8

السلام عليكم

أقدر لك صبرك أخي... و شكرا على المجهود :)

فقط تذكر أنك هنا تتحدث عن هندسة حاسوب...

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

بالتوفيق

#9

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

ملاحظة :

انا خبرتي بلغة التجميع تكاد تكون معدومة ولكنني احببت المشاركة دعما لأخينا الشبح .

هذا النص مقتبس من كتاب Art Of Asm

Data Organization

1 - Bit :

هو اصغر وحدة في الحاسوب هذا من ناحية ومن ناحية اخر يمكننا اعتبارها اللبنة الاساسية التي ترتكز عليها بقية الوحدات , وهي تأخذ احدى القيم التالية :

* 0

* 1

من السابق يتضح انه يمكننا اسناد قيمة صفر او واحد الى ال Bit ولاشئ غير ذلك.

2 - Nibbles :

ال Nibbles هو عبارة عن اتحاد اربعة Bits كما في الشكل التالي :

46196129.jpg

اتحاد اثنان من ال Nibles يسمى Byte , كما ستراه في الفقرة التالية .

3 - Byte :

يتكون ال Byte من اتحاد 8 Bits او اثنان من ال Nibles كما في الشكل التالي :

86647327.jpg

طبعا ترقيم اول Bit من ال Byte يبدأ بصفر ومن ثم يزداد العدد الى ان يصل الى الرقم سبعة فيصبح لدينا 8 Bits , وكذلك الحال بالنسبة لل Nibbles حيث اننا نلاحظ ان الواحد Byte يتكون من اتحاد اثنان من ال Nibbles .

مجال ال Nibble الاول يبدأ من ال Bit رقم صفر الى ال Bit رقم ثلاثة ومجال ال Nibble الثاني يبدأ من ال Bit رقم اربعه الى ال Bit رقم سبعة .

ال Nibble الاول يسمى :

( L.O Nibble ) Low Order Nibble

ال Nibble الثاني يسمى :

(H.O Nibble ) High Order Nibble

الان وبعد ان تعرفنا على كلا من ال Bit وال Nibble وال Byte , دعنا نجد اجابة للسؤال التالي :

لقد قام احد المستخدمين بالضغط على الحرف A الموجود في لوحة المفاتيح والان نحن بصدد تخزين تلك القيمة التي قام المستخدم بادخالها , فهل يا ترى سيكفي Bit واحد لخزن تلك القيمة ام انه يجب استخدام Nibble واحد لخزن القيمة او لا ذاك ولا ذاك بل يجب استخدام Byte كامل لخزن القيمة ؟؟؟

الاجابة هي رقم ثلاثة لا نستطيع خزن القيم الا باستخدام Byte واحد او اكثر , اما بالنسبة لل Bit وال Nibble فاننا لا نستخدمها لخزن البيانات !! وذلك لانها وحدات صغيرة لا تكفي لكي تستوعب جميع المحارف ( لمزيد من المعلومات ابحث عن كيفية تخزين البيانات بواسطة النظام Ascii و Unicode ) .

4 - Word :

هذه الوحدة تتكون من اتحاد اثنين من ال Bytes انظر الشكل التالي :

28885713.jpg

يسمى ال Byte الاول :

 Low Order Byte ( L.O Byte ).

يسمى ال Byte الثاني :

High Order Byte ( H.O Byte ) .

لمزيد من التفصيل انظر الشكل التالي :

85829046.jpg

5 - Double Words :

هذه الوحدة تتكون من اتحاد اربعة من ال Bytes انظر الشكل التالي :

74285670.jpg

92564608.jpg

46087090.jpg

لا اعتقد ان الصور السابقة تحتاج الى شرح !!!

منتظرين البقية يا شبح وفي امان الله ........

اخوكم Dr.Pain

#10

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

1. أشكر الأخ Dr.Pain المشاركة :lol: .

2. خليل أونيس أنا عارف أني أتكلم عن شئ بعيد (قليلا) عن لغة التجميع لكن أذ واصلت لفكرة عمل Processor تصل معاها فكرة المسجلات و من أين تأتي الأوامر لكن أنا وللأسف مضغوط لآخر شعر في راسي وسبب أني في سنه ثالث ثانوي و علي أخذ مجموع محترم عشان أنقبل !!

لكن هذا لا يعني حنقطع أول وقت أكون في فارغ إن شاء الله ححاول !!

كنت بتعمق أكثر في Processor لدرجة كنت أمبغى أوصل الأعماق قبل اللغة كيف يتم تنفيذ الأمر وأنا عارف أن ألوف اصفحات ما تغني لكن ليش ما نحاول :huh: ولذالك أفكر نتكلم عن أشياء أكبر من مثل ترانزسترات , وعندي كم موضوع يتكلم عن صناعة المعالجات ولكن أن حطيت الموضوع في هذا القسم لأني لاأريد من هب ودب يتكلم لأن القسم معروف بالأجابت وأحنا عندي أسئلة و أكثر طريق أحد يعبر بيه الواحد عن الشكر هي أن يجاوب أو يسأل لتنضاف لمجموعة متميزه من التسألات التي وصل لها عقولنا وتفوق علينا الغرب فيها !!

نحاول بعطيك مفتاح للبحث العالم الرياضيات ألي عن طريق المنطق كون المنطق البوليني أسم العالم جورج بول

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

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#11
الشبح الأسود كتب:
السلام عيكم ورحمة الله وبركاته

1. أشكر الأخ Dr.Pain المشاركة :lol: .

2. خليل أونيس أنا عارف أني أتكلم عن شئ بعيد (قليلا) عن لغة التجميع لكن أذ واصلت لفكرة عمل Processor تصل معاها فكرة المسجلات و من أين تأتي الأوامر لكن أنا وللأسف مضغوط لآخر شعر في راسي وسبب أني في سنه ثالث ثانوي و علي أخذ مجموع محترم عشان أنقبل !!

لكن هذا لا يعني حنقطع أول وقت أكون في فارغ إن شاء الله ححاول !!

كنت بتعمق أكثر في Processor لدرجة كنت أمبغى أوصل الأعماق قبل اللغة كيف يتم تنفيذ الأمر وأنا عارف أن ألوف اصفحات ما تغني لكن ليش ما نحاول :huh: ولذالك أفكر نتكلم عن أشياء أكبر من مثل ترانزسترات , وعندي كم موضوع يتكلم عن صناعة المعالجات ولكن أن حطيت الموضوع في هذا القسم لأني لاأريد من هب ودب يتكلم لأن القسم معروف بالأجابت وأحنا عندي أسئلة و أكثر طريق أحد يعبر بيه الواحد عن الشكر هي أن يجاوب أو يسأل لتنضاف لمجموعة متميزه من التسألات التي وصل لها عقولنا وتفوق علينا الغرب فيها !!

نحاول بعطيك مفتاح للبحث العالم الرياضيات ألي عن طريق المنطق كون المنطق البوليني أسم العالم جورج بول

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

قد يكون هذا اللنك ذو فائدة (ليس للغة التجميع ولكن لمن يريد أن يعلم كيف تكون المنطق) : ها هو !!

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#12

سأسجل ما وجدة و أعتقد سيكون فيه من الفائدة لنا نحن المبتدئين :s و مراجع للمبرمجين :lol:

قائمة السجلات:

يوجد العديد من السجلات، ولكل سجّل دور محدد على الأقل (هناك بعض السجّلات لها عدة أدوار وعدة مهام).

AL/AH/EAX: هو السجل العام، والذي تتغير قيمته بسرعة أثناء عمل الحاسب.

BL/BH/EBX: هو أيضا سجل عام، يمكن استخدامه كفرع للذاكرة (Offset).

CL/CH/ECX: عامة، يستخدم هذا السجل كعداد للحلقات (loops).

DL/DH/EDX: هذا الأخير هو أيضا سجّل عام، وهو إجباري عند العمل للوصول إلى المداخل(ports)، (المداخل هي واسطة للتواصل بين مختلف رقائق الحاسب، مثل المدخل 42h و 43h تستعمل لمراقبة مكبرات الصوت الداخلية).

CS: قطاع ذاكري مخصص للكود (Code Segment).

DS: قطاع ذاكري مخصص للبيانات (Data Segment).

ES: قطاع ذاكري.

FS: قطاع ذاكري آخر.

GS: قطاع ذاكري آخر.

SS: قطاع ذاكري خاص بالمكدس (Stack Segment).

BP: فرع (Offset) ذاكري، وغالبا هو نسخة من السجل SP، حيث يمكننا طرح قيمة من أجل قراءتها في المكدس. (لا يجب علينا تغيير محتوى SP).

EDI/DI: فرع ذاكري يستخدم من قبل ES (أو FS أو GS إذا ما تم تحديده).

EIP/IP: فرع ذاكري خاص بالكود (غير يمكن الوصول إليه مباشرة، لكن يمكن تغيير محتواه بطريقة مباشرة من خلال التعليمات: CALL, JMP أو [J[case، حيث case هي حالة من حالات القفز التي سنراها لاحقا).

ESI/SI: فرع ذاكري يستخدم من قبل DS.

ESP/SP: فرع ذاكري يستخدم من قبل المكدس (Stack).

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

#13

سلسلة جميلة جدا...

أتمنى إنه واحد يكملها !!!

أخوكم خالد ...

#14

قائمة المقاطعات:

هذي معلمومات التي عن المقاطعات لا أعلم صحتها ولذلك أعذرونا !!!!!!!!!

01h : تنفيذ برنامج ما في حالة خطوة خطوة (للسماح باكتشاف الأخطاء).

02h : مقاطعة غير مقنّعة.

03h : خطأ في الانفصال.

04h : خطأ نتيجة تعدّي الحجم، كمثال:

Mov al, 200;

Add al, 140;

==> 200+140 = 340 <==> 340>255.

05h : يتم من خلال هذه المقاطعة طبع الشاشة في شكل نص.

08h : ساعة تدور بمقدار 18.6 نقرة في الثانية.

09h : قراءة من لوحة المفاتيح. المفتاح مشفر بكود خاص بهذه اللوحة (scan code)، ويتم تحويله إلى كود آسكي بفضل المقاطعة 16h.

0Bh : تسيير المنفذ COM2.

0Ch : تسيير المنفذ COM1.

10h : تسيير بطاقة الفيديو.

11h : قائمة التعديلات (الذاكرة، عدد منافذ الكوم (COM)، المعالج الثانوي Co-Processor، ...)

12h : حجم الذاكرة المنخفضة Low (640 كيلو بايت كحد أقصى).

13h : تسيير مختلف الأقراص.

14h : تسيير واجهة السلسلة (منافذ الـكوم، لاحظ المقاطعتين 0Bh و 0Ch).

15h : مقبض اللعب، أشرطة و التوب فيو (TopView).

16h : تحويل كود المفتاح (الملمس) المقروء من قبل المقاطعة 09h وتحويله إلى كود آسكي.

17h : تسيير الطابعة.

18h : الذاكرة الميتة القاعدية (basic rom).

19h : روتين تحميل الدوس.

1Ah : تسيير الساعة الحقيقية (real).

1Bh : مراقبة الضغط المشترك للمفتاحين CTRL+C.

1Ch : عداد نقرة/نقرة بسرعة الساعة 08h أي 18.6 هرتز، قيمته تحفظ في الموضع 0040h: 0060h

1Dh : جدول تهيئة (استهلال) الفيديو.

1Eh : جدول بارامترات الأقراص المرنة.

1Fh : جدول الرموز البيانية (Graphic).

20h : مقاطعة الدوس: نهاية برنامج من نوع .com (استعمال النوع .exe هو السائد حاليا)

21h : مقاطعة الدوس: دوال ومهام عامة (القرص الصلب، الساعة، الطباعة، الإخراج والإدخال من و إلى الشاشة أو الملفات، ...).

22h : مقاطعة الدوس: عنوان نهاية المعالجة (القرص الصلب، الساعة، ...).

23h : مقاطعة الدوس: مراقبة CTRL+PAUSE أو CTRL+BREAK.

24h : مقاطعة الدوس: خطأ قاتل في اتجاه المقاطعة.

25h : مقاطعة الدوس: قراءة مباشرة من قرص ما.

26h : مقاطعة الدوس: كتابة مباشرة على قرص معين.

27h : مقاطعة الدوس: برامج مستقرة في الذاكرة.

28h : نهاية برنامج بقي مستقرا في الذاكرة.

2Fh : مقاطعة للعديد من البرامج الفرعية (تسيير الشبكة، درايفر السيدي...).

ومن لديه معلومه لايبخل علنا (فهو كريم و أحنا نستاهل :lol: )

ليس العلم بكثرة التعلم و إنما هو نور من الله ينزله على من يريد أيهديه

هذا الموضوع مغلق.

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