مدونة علم البرمجة والحاسوب
من حقك ان تتعلم اكثر

دورة الاسمبلي : الدرس الثاني



 

يتألف الحاسوب بشكل أساسي مناللوحة الأم Mother Board والمعالج Microprocessor وذاكرة القرأة-فقط ROM=Read-Only Memory وذاكرة الوصل العشوائي=الرام RAM=Random-Access Memory ووحدة التغذية Power Supply والمنافذ التوسعية Expansion Slots مثل فتحات توصيل الكروت ( كروت الشاشه والصوت و ما إلى ذلك ) .

المعالج : -
--------------
يمثل المعالج عقلالحاسوب وهي الوحدة المسؤله عن القيام بأدارة الحاسوب والقيام بالعمليات الرياضيةوالمنطقية ونحن هنا كما أوضحت ندرس معالجات أنتل من العائلة X86 لأنها العائلةالأشهر والأكثر أستخداماً بين الناس .

وحدة التنفيذ ووحدة ملاءمة الممر Execution Unit And Bus Interface Unit :-
-------------------------------------------------------------------------------------------------
يتألفالمعالج من وحدتين هما وحدة التنفيذ Execution Unit أختصاراً EU ومهمتها تنفيذالتعليمات ،ووحدة ملاءمة الممر Bus Interface Unit أختصاراً BIU ومهمتها نقلالبيانات والمعطيات الى وحدة التنفيذ . تحتوي وحدة التنفيذ على وحدة الحساب والمنطق Arithmetic And Logic Unit أختصاراً ALU ووحدة التحكم Control Unit أختصاراً CU ومجموعة من المسجلات.

تتألف وحدة ملائمة الممر من وحدة التحكم بالممر Bus Control Unit ومسجلات المقاطع Segment Registers ورتل=كيو التعليمات Instruction Queue (الرتل أو الكيو هو نوع من أدارة الذاكرة تكون فيه المعلومة الداخلة أولاخارجة أولاًً FIFO=First In First Out ).

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

تضع وحدة ملاءمة الممر تضع التعليمات في رتلها المخصص لها في وحدة التنفيذبعد أن تقوم بجلبها من الذاكرة . يخصص رتل التعليمات لوضع التعليمات فيه بعد جلبهامن الذاكرة بواسطة وحدة ملاءمة الممر ، ولذلك يوجد دائماً رتل من التعليمات جاهزهلتنفيذها من قبل وحدة التنفيذ . تعمل وحدة التنفيذ ووحدة ملاءمة الممر على التوازي (في نفس الوقت) ، بينما تحتقظ وحدة ملاءمة الممر بخطوة نحو الأمام، فعندما تقوموحدة التنفيذ بتنفيذ تعليمة ما ، تعمل وحدة ملاءمة الممر أما على جلب تعليمة منالذاكرة ووضعها في رتل التعليمات لكي تنتظر دورها في التنفيذ ، أو على جلب معطياتمن الذاكرة أو أحد أجهزة الأدخال أو الأخراج . وخلافاً للطريقة التسلسلية فيالمعالجة فأن هذه العملية تحقق حدوث عمليتي الجلب fetching التنفيذ execution فيوقت واحد الأمر الذي يزيد بدورة من سرعة المعالج .

ذاكرة القرأة-فقط ROM = Read-Only Memory :-
---------------------------------------------------------------
وهيعبارة عن شريحة دائرة متكاملة IC تحوي على ذاكرة فيها بيانات غير قابلة لأعادةالكتابة عليها (أفتراضياً - شرائح ال ROM الحديثة يمكن إعادة الكتابة عليها بطرقمختلفة ) ، تحتوي هذه الذاكرة على برنامج ال BIOS=Basic Input Output System أونظام الأدخال والأخراج الأساسي، ولايمكن للمعالج القرأة من هذه الذاكرة مباشرة ولكنأول شئ يفعل المعالج عند تشغيله في عملية الأستنهاض هي تحميل البيانات الموجودة فيالروم ونقلها في الرام أو بالأحرى الى القسم الأخير من الرام ذا العنوان الأكبر . تتجلى فائدة ال BIOS في القيام بعملية الفحص الذاتي عند الأستنهاض POST=Power On Self Test بالأضافة الى تحميل برنامج محمل نظام التشغيل بالأضافة الى توفير دوالومقاطعات قياسية في ذاكرة الرام تستطيع أن تستخدمها البرامج للرسم على الشاشة مثلاًأو التعامل مع لوحة المفاتيح أو القرأة والكتابة من والى القرص الصلب .

ذاكرة الوصول العشوائي RAM = Random Access Memory :-
-------------------------------------------------------------------------------
هذهالذاكرة مهمة جداً حيث أن أي برنامج لايمكن أن يعمل الا اذا حمل الى هذه الذاكرةكذلك فهي تستخدم لحفظ المتغيرات وحفظ برامج النظام الأساسية ومنها جدوال المقاطعاتوالمقاطعات أنفسها والرويتنات الفرعية ...... الخ ولايتم أستخدام القرص الصلب لحفظمثل هذه المعلومات لأن وقت الوصول فيه أبطأ بكثير من ذاكرة الرام (ولو أن القرصالصلب يستخدم في توفير ذاكرة أفتراضية عن طريق القيام بعمليات مبادلة للصفحات معذاكرة الرام) ، وبالطبع فأن هذه الذاكرة يمكن الكتابة اليها أو القرأة منها عن طريقعنونتها .
فبأستخدام العنوان يمكننا أن نصل الى مكان محدد في الذاكرة لنعمل عليهكل عمليات التحرير المطلوبة .


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


--------------------------------------------------------------------------------------------------------------------------


تمثيل الأعداد والحروف
-------------------------
قد تتسائل ما علاقة تمثيلالبيانات والعد الثنائي بالأسمبلي ؟ حسناً كما وضحت من قبل فأن الأسمبلي هي لغةقريبة جداً من لغة الآله وهي لغه منخفضة المستوى تتعامل مع العتاد والمعالح بصورةمباشرة ولكي نحقق فهماً أوسع لهذه اللغه يجب أن نفهم بعض الأشياء المهمة جداً فيبنية المعالج .


العد الثنائي :-
----------------
يتم تمثيلالشفرات والبيانات في ذاكرة الكمبيوتر كتواليف من الشحنات الكهربائية تأخذ قيمتينالأولى وهي وجود الشحنة ويرمز لها ب ON أو صحيح TRUE أو ‘1’ والأخرى وهي غيابالشحنه ويركز لها ب OFF أو خطأ FALSE أو ‘0’ ، ووجود الشحنة يكون عادة بين 4.5 الى 5.5 فولت ( المعالجات الحديثه بين 2.5 الى 3.5 فولت ) وغياب الشحنة يكون بين +0.5فولت و -0.5فولت .

وحدات الذاكره الأساسيه في الذاكره والوحدات التي سنتعاملمعها كثيراً هي :-
---------------------------------------------------------------------------------
1
بت = بت و هو إما يساوى 0 أو 1 (وجود شحنه أو عدم وجود شحنه ) ( عدد 2 إحتمال ) Bit
8
بت = 1 بايت (عدد 256 إحتمال أى ما يعادل 2 أس 8 ) Byte
16
بت = 2بايت(عدد 65536 إحتمال أى ما يعادل 2 أس 16 ) Word
32
بت = 4 بايت(عدد 4294967296 إحتمال أى ما يعادل 2 أس 32 = 4 جيجا إحتمال ) DWord=DoubleWord
64
بت = 8 بايت ( عدد 2 أس 64 إحتمال = 16 جيجاجيجا إحتمال )

وحدات أكبر و تختصبقياس البيانات فى مختلف أجزاء الكمبيوتر :-
-----------------------------------------------------------------------
1024
بايت = KB الكيلوبايت
1024
كيلوبايت = MB الميجابايت
1024
ميجابايت = GB الجيجابايت
1024
جيجابايت = TB التيرابايت
1024
تيرابايت = PB البيتابايت
1024
بيتابايت = EB الأكسابايت
1024
أكسابايت = ZB الزيتابايت
1024
يوتابايت = YB اليوتابايتالأسكي كود ASCII:-
-------------------------
يتم في الحاسوب وبقية توحيد أستخدامالرموز أستخدام شفرة الآسكي كود (حالياً يعمل على تبني شفرة ال unicode وهي تسمحبتعدد اللغات في مستند واحد حيث يتم تمثيل كل حرف بأستخدام كلمة واحده=2بايت) كلمة ASCII هي أختصار ل :
American National Standard Code For Information Interchange
ويتم أستخدام هذا الكود الموحد لتسهيل تناقل البيانات ويمثل كل رمزفيه بعدد ثنائي بطول 1بايت=8بت=256أحتمال .
مما يعنى أن أى حرف نكتبه أو نراهعلى الشاشه يكون له مقابل رقمى يسمى الأسكر كود الخاص به و سنستخدم هذا الموضوعكثيرا كثيرا جدا ، لذلك يجب عليك أخذ نظره على جدول الأسكى التالى :-

الجدول الكامل للأسكى كود من الرقم 0 إلى 127


جدول الأسكى الموسع من رقم 128 إلى 255


طريقة كتابةالأرقام في الأسمبلر :-
-------------------------------------
لكتابة عددثنائي يوضع في آخر الرمز ( b ) لدلالة على أنه باينري مثال : Binary=11010010B أماالعدد العشري فلايحتاج الى أضافة وأما العدد لأساس 8 فيكتب مع المرمز (Q) في نهايته Octal=1276Q أو الرمز (O) في نهايته Octal=1276O أما العدد السداسي عشر فيكتب بوضع H في نهايته hexadecimal=0AB9CDH مع مراعاة وضع 0 اذا كان العدد يبدأ بحرف كماالمثال .

يجب أن تعرف الفرق بين تخزين الرقم كرقم أو تخزينه كنص فتخزينالرقم 201 مثلاً كرقم سسيأخذ بايت واحد وهو جاهز للقيام بعمليات رياضية ومنطقيهعليه أما تخزينه كنص فسيأخذ ثلاثة بايت في البايت الأول سيخزن الرقم الخاص بالأسكيكود للرمز '2' وكما قلت يخزن كرقم يدل على الرمز أما البايت الثاني فسيخزن رقمالآسكي كود للرمز '0' أما البايت الثالث فيأخذ القيمه الخاصة بالرمز '1' في الآسكيكود أي أن الرقم خزن بطريقة "102" وليس 102 وهذه الطريقة ليست جاهز للجمع أو الطرحولكنها ممتاز للطباعه على الشاشه ويمكن تحويل النص الى رقم والعكس .

الأعدادذي الأشاره :-
-----------------------
يتم تخزين الأعداد ذي الأشاره كالتالي :-
------------------------------------------
العدد موجب أذا كانت البتالأخيره صفر وقيمة الرقم هي باقي البتات أي لو أخذنا رقماً من بايت واحد فأن البترقم 7 (الثامنه - الترقيم يبدأ من الصفر ) يجب أن تكون صفراً ليكون العدد موجب أماالبتات من 0 الى 6 ( السبعه الأولى ) فتشكل قيمة الرقمأما أذا كان العدد سالبفأن البت الأخيرة تساوي واحد أما قيمة الرقم فتساوي سالب المكمل الثنائي للعدد أيلو أخذنا رقم مخزن في واحد بايت مثال = 11110110 بما أن البت السابعه=1 فأن الرقمسالب / نأخذ الآن المكمل الثنائي للعدد وهو 00001010 / القيمة تساوي -00001010 أيسالب عشرة .


ملاحظات مهمه :-
---------------------
1 -
البايت فىنظام التمثيل العددى بدون إشاره ( على إعتبار أن العدد موجب ) نطاقه من 0 إلى 255 .
2 -
البايت فى نظام التمثيل العددى بالإشاره ( البت الأخير للإشاره) نطاقه من -128 إلى +127 .
3 -
عند تعريف متغير من النوع Integer فى السى أو البيسيك فإنهيحجز للرقم 2 بايت .


إلى هنا ينتهى الدرس الثانى ،

من انا ؟