2-تعليمات اسمبلي شكل التعليمة







تعليمات اسمبلي:
كما ذكرنا سابقاً بأن الأجهزة الداخلية للحاسوب تشمل الذاكرة والمسجلات و المعالج وتقوم بنقل البيانات والعناوين عبر ممرات خاصة تم تفصيلها سابقاً  لتنفيذ تطبيق معين قام المصمم ببرمجته و ليتم تنفيذ تطبيق ما النظام يقوم بنسخ الملفات عن طريق جهاز خارجي إلى الذاكرة المعالج الذي يقوم بتنفيذ تعليمات هذا البرنامج مجموعة التعليمات التي يتعامل معها المعالج في لغة الاسمبلي هي المسؤولة عن عمليات رياضية ومنطقية معقدة وسنقوم بدراسة مطولة لهذه التعليمات لتداخلها الكبير في الهندسة العكسية فكل ما في هذا العلم هو عبارة عن فهم واسع للعمليات الحسابية التي يقوم المعالج بالإشراف عليها المعالجات ذات المعمارية 8086 تحتوي على 117 تعليمة خاصة بلغة المجمع يردفها تعليمات أخرى فرعية تتفرع من التعليمة الأساسية لكن قبل الدخول إليها لا بد من معرفة أساسيات هامة في كتابة نص برمجي بهذه اللغة
لماذا نظام النوافذ (Windows)
يمكن القول إن لغة المجمع تتعامل مع العديد من منصات التشغيل بدون أن يؤدي ذلك إلى تغير الكفاءة الخاصة بهذه اللغة ومنصة العمل التي سوف نقوم بشرح برامجها تحت هذه اللغة هي نظام التشغيل (Windows) وذلك لعدة أسباب:
1-  وجود تطبيقات واسعة تدعم مجال التحكم بهذه اللغة
2-  وجود أدوات مساعدة خاصة بنظم أمن المعلومات تدعم بشكل واسع هذه المنصة ويتم التحكم بها بالدرجة الأولى من خلال لغة المجمع
3-  الانتشار الواسع لنظام شركة مايكروسوفت في العالم العربي على حساب لنكس مثلاً مع إن الأخير يعتبر واحد من أكثر أنظمة التشغيل أماناً...!

4-  شكل تعليمة أسمبلي
تتكون تعليمة أسمبلي من أربعة أجزاء رئيسية تقوم بتنفيذ عملية ما يتم استقبالها من قبل لغة الآلة كشيفرة تعليمات ثنائية (نظام العد الثنائي الواحد والصفر) الهدف الأساسي من هذه التعليمات هي القيام بإجراء عملية محددة كتخصيص مساحة من الذاكرة لمتغير ونقل رقم معين إلى مسجل ما للقيام بعملية تجاوز لرسالة اعتراض وضعت من قبل مبرمج ما والكثير من الأمور الأخرى أما شكل هذه الأجزاء الأربعة فهي كالتالي:
التعليق
المتأثر
العملية
الاسم
Any Comment
CX,AX
MOV
Start




يتم الفصل بين هذه التعليمات من خلال مفتاح المسطرة بمسافة واحدة على الأقل لاحظ أننا قمنا في المثال السابق بعملية نقل قيمة المسجل CX إلى المسجل AX طبعاً طريقة الشيفرة البرمجية هي عامة لكل التعليمات الأخرى بالنسبة للاسم والتعليق هو أمران اختياريان وبشرح مفصل أكثر
الاسم (Name):
يستخدم هذا القسم لعنونة عملية محددة أو لكتابة متغير ما أو حتى للقيام باستدعاء برنامج فرعي بكل الأحوال فإن هذا القسم يتم تسجيله في الذاكرة كعنوان للعملية التي تم تنفيذها ويشترط في كتابة الاسم ثلاث أمور
1-  أن لا يبدأ الاسم برقم
2-  أن يكون عدد الأحرف 31 كحد أقصى
3-  عدم الفصل بين الكلمة نفسها بمسافات
التعليمة (Instruction):
هذا القسم إجباري في عملية كتابة الأوامر ويحتوي كما شاهدنا سابقاً على التعليمة المراد تنفيذها من قبل لغة المجمع بكل الأحوال هذه التعليمات تتميز بأنها ثابتة ومتفرعة إلى تعليمات أخرى إضافية وسريعة التنفيذ من قبل رقاقة المعالجة الرئيسية التي تتعامل معها كلغة الآلة
المتأثر (Operand):
طبعاً هذا القسم مهم جدا أيضاً فالتعليمة البرمجية التي يتم تنفيذها تقوم بالتأثير مباشرة على هذا الجزء الذي يتعامل مع مكونات الحاسب كالذاكرة الرئيسة والمسجلات والمراكم ويستفيد من التعليمة في إجراء هذه العمليات ويلاحظ من خلال كتابة شيفرة التعليمات السابقة أن المتأثر الأول غالباً ما يقع عليه التغيير من خلال التعديل الذي يريد المبرمج تنفيذه على هذا الجزء ومثال على ذلك
ADD CX,1       
MOV CX,AX
من خلال المثال السابق يمكننا القول بأن التأثير كله حدث على المسجل CX أي الجزء الأول كما قلنا سابقاً حيث قمنا بإضافة واحد إلى المسجل CX ثم قمنا بعد ذلك بنقل قيمة هذا المسجل إلى المسجل AX من نفس النوع إذا المتأثر الأول هو الذي يتم التعديل عليه أما المتأثر الثاني فيمكن تسميته المتأثر المصدر
التعليقات (Comment):
تعتبر التعليقات جزء اختياري في كتابة التعليمات بلغة المجمع وتستخدم بشكل عام لشرح الشيفرة التي تم كتابتها من قبل المبرمج لتوضيح ماهية عمله وتستخدم الفاصلة المنقوطة حصراً لفصل التعليمات عن التعليق وجعله غير قابل للتنفيذ ومثال على ذلك:


MOV AX,4 ; نقل العدد 4 الى المسجل الف اكس
MOV BX,3 ; نقل العدد 3 الى مسجل البي اكس
ADD AX,BX ; جمع المسجلين مع بعض والناتج هنا 7


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


;عملية حسابية لجمع قيمة مسجلين
MOV AX,4
MOV BX,3
ADD AX,BX


طبعاً عرضنا مثالين مختلفين لكيفية كتابة التعليق بعد التعليمة أو فوق مجموعة من التعليمات كما وضحنا سابقاً وللعلم فإن هذه الطريقة متبعة في عدد كبير من لغات البرمجة
شاركه على جوجل بلس

عن حذيفة مهيار

    تعليقات بلوجر
    تعليقات فيسبوك

0 التعليقات:

إرسال تعليق