Devil Code

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

DevilCode


    دورة الأسمبلى - اليوم الثاني

    Coder
    Coder
    Manager
    Manager


    عدد المساهمات : 202
    النقاط : 5785
    تاريخ التسجيل : 20/10/2009
    العمر : 37

    دورة الأسمبلى - اليوم الثاني  Empty دورة الأسمبلى - اليوم الثاني

    مُساهمة  Coder الأحد ديسمبر 26, 2010 8:59 pm

    دورة الأسمبلى - اليوم الثاني



    كيان الحاسوب الصلب :-
    ---------------------------



    يتألف الحاسوب بشكل أساسي من اللوحة الأم 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 بايت .


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


      الوقت/التاريخ الآن هو الأربعاء مايو 15, 2024 11:00 pm