لغة الآلة ولغة التجميع
كيف ينفذ المعالج البرامج؟
بعد دراسة هيكلية المعالج الدقيق وبنيته في الفصل الأول، ندرس في هذا الفصل كيف يقوم المعالج بتنفيذ البرامج وما تتضمنه من تعليمات، مما يؤدي إلى تشغيل الحاسوب بسلاسة وكفاءة.
عند تثبيت البرمجيات على الحاسوب الشخصي (من الأقراص الليزرية CD-ROM أو بتحميلها عن طريق الإنترنت) يتم تخزين الشفرة (Code) التي يتألف منها البرنامج وأية ملفات مرتبطة على القرص الصلب. وهذه الشفرة تتألف من سلسلة تعليمات تقوم بأداء مهام معينة، وكذلك البيانات المرتبطة بهذه التعليمات.
والتعليمات التي يمكن للمعالج تمييزها تُعرف بمجموعة التعليمات (Instruction Set). وعندما يتم التعرف على التعليمة وتقرير الإجراءات التي ينبغي تنفيذها عليها، يقوم المعالج بتنفيذ هذه الإجراءات قبل الانتقال إلى التعليمة التالية في الذاكرة، وتسمى هذه العملية «دورة تنفيذ التعليمات» (Instruction Execution Cycle).
['مسار تنفيذ البرنامج: التنصيب من الوسائط المصدر، ثم تنصيبه على القرص الصلب، ثم تحميله إلى الذاكرة، ثم تنفيذه بواسطة المعالج.']
وسيلتا التعامل مع المعالج
وزاري: تكرر ٣ مراتالوظيفة الرئيسة للمعالج الدقيق معالجة وتنفيذ مجموعة من التعليمات المحددة بحيث يتم تنفيذ كل تعليمة عند إعطاء الشفرة الخاصة بها. وكلما تعددت هذه التعليمات وزادت سرعة المعالج في تنفيذها وسهلت عمليات المواجهة مع الدوائر المحيطة به، كان ذلك مؤشراً على جودة المعالج.
والمتعامل مع المعالج لا بد أن يكون ملماً بكلتا الوسيلتين: البرمجة والمكونات المادية.
البرنامج والتعليمة (الإيعاز)
وزاري: تكرر ١٩ مرة['الأوامر (التعليمات) هي شفرات ثنائية تطلب من المعالج تنفيذ عملية معينة. تعريفها من أكثر الأسئلة تكراراً: ١٩ مرة في الامتحانات الوزارية.']
لغة الآلة Machine Language
وزاري: تكرر مرتينلغة البرمجة التي تكتب بها التعليمات المكونة للبرنامج هي لغة متكونة من الواحدات والأصفار التي يتم إرسالها بسهولة عبر إشارات كهربائية ليتعامل معها المعالج، وتسمى لغة الآلة Machine Language، وهي اللغة الوحيدة التي يفهمها الحاسوب ويوظفها للاتصال بين الوحدات الداخلية المختلفة، وتعد لذلك اللغة الداخلية له.
وقد اعتمدت في كتابة برمجيات الجيل الأول من الحواسيب، وتختلف من معالج إلى آخر تبعاً لنوعه وطرازه وتركيبه الداخلي.
عيوب لغة الآلة
وزاري: تكرر ٦ مراتكيف حاول المبرمجون التغلب على هذه العيوب؟
حاولوا التغلب على بعض عيوبها باعتماد النظام الست عشري (Hexadecimal) بدلاً من النظام الثنائي، فحل مشكلة صعوبة كتابة البرامج واستخراج الأخطاء منها إلى حد ما، لكن بقيت مشكلة التعامل مع أرقام صماء لا تحمل أي دلالة عن ماذا يفعل الأمر.
ولذلك طوروا فكرة إعطاء كل أمر شفرة مكونة من ثلاثة أو أربعة أحرف في الأكثر مختصرة من الحروف الأبجدية تدل تقريباً على ما يقوم به المعالج عند تنفيذ الأمر، فنشأت لغة التجميع.
لغة التجميع Assembly Language
وزاري: تكرر ٣ مراتلغة تعتمد شفرات رمزية سهلة التذكر (اختصارات حرفية مكونة من ثلاثة أو أربعة أحرف في الأكثر) بدلاً من الشفرات الرقمية المعتمدة في لغة الآلة، مثل (MOV, ADD)، وتسمى أيضاً الشفرات الحرفية (Mnemonics Codes) أو لغة الترميز.
لغة التجميع تشابه لغة الآلة لأن اللغتين من اللغات منخفضة المستوى (Low Level Language)، وهذا لا يعني أنها لغات ضعيفة، وإنما يعني أنها مرتبطة بالمعالج مباشرة، فالمتعامل معها لا بد أن يكون ملماً بمكونات المعالج ليستطيع استخدامها بكفاءة.
برنامج المجمع (Assembler)
وزاري: تكرر ١٠ مراتهو برنامج خاص يقوم بتحويل (ترجمة) البرنامج المكتوب بلغة التجميع ذي الشفرات الحرفية إلى برنامج بلغة الآلة ذي الشفرات الثنائية، لأن المعالج لا يتعامل إلا مع الشفرات الثنائية.
ويسمى البرنامج المكتوب بلغة التجميع برنامج المصدر (Source Program)، والبرنامج المكتوب بلغة الآلة برنامج الهدف (Object Program).
تتكون التعليمة في لغة التجميع من الاسم الرمزي (Operation Code) الذي قد يكون متبوعاً بمعامل واحد أو معاملين (Operands). والمعاملات هي المعطيات التي سيتم معالجتها، أما الاسم الرمزي فهو الأمر الموجه إلى المعالج ليخبره عن العملية التي ستجرى على هذه المعطيات.
مثالان على تعليمات لغة التجميع
تعليمتا النقل MOV والجمع ADD
وزاري: تكرر ٧ مرات['في تعليمة MOV الوجهة تُكتب أولاً ثم المصدر: MOV D, C تعني انسخ C إلى D. وبعد النسخ يبقى المصدر كما هو ولا يصبح خالياً.']
