أحسنت! وصلت إلى ختام الفصل الرابع: الأوامر
راجع نتيجتك في كل درس، وأعد أي درس لم تحصل فيه على علامة كاملة.
- تصنيف الأوامرلم تختبر نفسك بعد
- العنونةلم تختبر نفسك بعد
أهم ما تتذكره من الفصل
['التعليمة تتكون من: العنوان (Label)، ثم الأمر (Operation)، ثم المعاملات (Operand)، ثم الملاحظات (Comment) بعد الفاصلة المنقوطة. وجميع الحقول اختيارية ما عدا حقل التعليمة.']
من درس: تصنيف الأوامر['الأوامر تصنف على أساس النوع إلى أربعة أصناف، وعلى أساس العنونة إلى أربع مجاميع بحسب حجمها بالبايتات.']
من درس: تصنيف الأوامر['في الفورية المعامل داخل التعليمة، وفي المباشرة العنوان داخل التعليمة، وفي غير المباشرة الرجوع إلى الذاكرة مرتين، وفي المؤشرة والنسبية يتم جمع العنوان مع سجل التأشير أو عداد البرنامج.']
من درس: العنونةالأسئلة الوزارية لهذا الفصل
اضغط على السؤال ليظهر جوابه.
ما المقصود بالأوامر؟تكرر ١٠ مرات
وزاري: ٢٠٢٤ د٢
الأوامر عبارة عن شفرات ثنائية Binary Code تطلب من المعالج الدقيق تنفيذ عملية معينة كجمع رقمين مثل الأمر ADD أو خزن معلومة معينة في الذاكرة مثل الأمر STA أو تحميل معلومة معينة من الذاكرة مثل الأمر LDA.
ما الحقول التي تتكون منها التعليمة؟ وما المقصود بأن الحقول اختيارية؟تكرر ٣ مرات
وزاري: ٢٠٢٦ تمهيدي
إن جميع حقول الإيعاز أو التعليمة هي حقول اختيارية ما عدا حقل التعليمة (Operation Field)، والمقصود بالاختيارية ان لها حالات متعددة تختلف باختلاف نوع التعليمة أو الأمر، والحقول الاختيارية يمكن ان تتواجد في بعض التعليمات وتختفي في التعليمات الأخرى بحسب الحاجة اليها.
يتم الفصل بين الحقول بواسطة مفتاح ال TAB أو المسطرة (SPACE) أي يكون هناك فراغ واحد في الأقل بين كل حقل والحقل التالي.
ما المقصود بحقل العنوان (العلامة)؟ وما شروط تكوين الاسم فيه؟ ولماذا لا يقبل الاسم 1000$_done؟تكرر ٤ مرات
وزاري: ٢٠٢٥ تمهيدي
يستخدم هذا الحقل في حالة حدوث عملية تفريع لهذا الأمر كإعطاء عنوان لأمر محدد أو إعطاء إسم لبرنامج فرعي كذلك لإعلان أسماء المتغيرات، يتم تحويل هذا الحقل إلى عناوين في الذاكرة.
شروط تكوين الاسم:
١- يتكون الاسم من الحروف A - Z، ويتضمن الأرقام من 0 إلى 9، والرموز الخاصة مثل @ و $، ويجب الا يكون من الرموز المحجوزة في لغة التجميع مثل أسماء السجلات المختلفة وغيرها.
٢- يمكن أن يكون بطول حتى 31 حرفاً وغير مسموح وجود مسافات بداخله.
٣- لا يستعمل الحرف "." إلا في بداية الاسم، ولا يبدأ برقم، ولا يتم التفريق بين الحروف الكبيرة والصغيرة.
والاسم 1000$_done غير مقبول لأنه يبدأ برقم.
ما المقصود بحقل تعليمة الأمر (Operation Field)؟تكرر ٦ مرات
وزاري: ٢٠٢٠ د١
هو الاختصار الرمزي لاسم العملية OpCode، ويمكن لهذا الاختصار أن يتكون من حرفين حتى ثمانية أحرف، ويحتوي هذا الحقل على شفرة الأمر المطلوب تنفيذها من قبل المعالج.
ويجب أن تكون إحدى التعليمات المعروفة للبرنامج الذي سيقوم بمعالجتها هو المجمع Assembler، إذ سيقوم بتحويلها إلى لغة الآلة كمثال لذلك التعليمات ADD و CMP و MOV وكلها تعليمات معرفة في برنامج المعالج. أما إذا كان إيعازاً Pseudo-Op (شبه التعليمة) فلا يتم تحويله للغة الآلة ولكنه يأمر المجمع Assembler بالقيام بشيء محدد، مثلاً Proc الذي يستعمل لتعريف برنامج فرعي Procedure.
ما الذي يحتويه حقل المعاملات (Operand Field)؟
وزاري: ٢٠٢١ تمهيدي
يحتوي هذا الحقل على المعاملات من سجلات ومتغيرات وثوابت التي سيتم تنفيذ الأمر الحالي عليها (مثل عملية الجمع مثلاً)، ويمكن لهذا الحقل أن يحتوي على قيمتين أو قيمة واحدة أو لا يحتوي على أي قيمة على الإطلاق، وذلك حسب نوع الأمر المستعمل.
ما أهم الفروقات بين حقل التعليمة (الأمر) وحقل الملاحظات (التعليقات)؟تكرر ٩ مرات
وزاري: ٢٠٢٠ د١
حقل تعليمة الأمر: هو الاختصار الرمزي لاسم العملية OpCode، ويحتوي على شفرة الأمر المطلوب تنفيذها من قبل المعالج، ويقوم المجمع Assembler بتحويله إلى لغة الآلة. وهو الحقل الوحيد الذي ليس اختيارياً.
حقل الملاحظات: يحتوي على ملاحظات من المبرمج وتعليقات على الأمر الحالي، يتم بدء هذا الحقل بالفاصلة المنقوطة ";" وأي عبارة تقع بعد هذه الفاصلة المنقوطة يتم تجاهلها على أنها ملاحظات، وهو يستعمل لتوثيق البرنامج. فهو حقل اختياري (أي يمكن ان نهمله) في جميع الأوامر.
ما المقصود بموجهات المجمع (Assembler Directives)؟تكرر ٧ مرات
وزاري: ٢٠٢٦ تمهيدي
وهي إيعازات إلى المجمع (Assembler) الذي يقوم بتنفيذ عملية التجميع للقيام ببعض العمليات المحددة، مثل تخصيص جزء محدد من الذاكرة لمتغير محدد وتوليد برنامج فرعي، ومثال على تلك الإيعازات: Main Proc وهذا الإيعاز يقوم بتعريف برنامج فرعي (إجراء) باسم Main.
تصنف الأوامر في لغة التجميع إلى أصناف وظيفية على أساس النوع. عددها مع ذكر أمر واحد لكل نوع.تكرر ٢ مرات
وزاري: ٢٠١٦ د٢
تصنف التعليمات بنحو رئيس الى أربعة أصناف وظيفية بحسب الاستخدام:
١- عمليات معالجة البيانات والعمليات التي تجري على الذاكرة، مثل أوامر (MOV, Push, POP).
٢- عمليات منطقية وحسابية (Arithmetic and Logic Operations): وتشمل الأوامر المنطقية والحسابية والإزاحة والدوران، فالأوامر الحسابية تقوم بالعمليات الحسابية للقيم في السجلات مثل (Add, Sub, Mul, Div, Dec, Cmp) والأوامر المنطقية تقوم بالعمليات المنطقية مثل (And, Or, Xor, Not) وأوامر الإزاحة والدوران مثل: (Shl, Shr, Rcl, Rcr).
٣- عمليات ضبط الإنسياب (Flow Control Operation)، مثل (Jmp, Call, Ret).
٤- عمليات تحكم المعالج (Processor Control): وتشمل أوامر التحكم بالمعالج أوامر خاصة بالمقاطعة أو التوقف مثل (Halt, Interrupt).
اشرح باختصار عمليات معالجة البيانات والعمليات التي تجرى على الذاكرة.تكرر ٢ مرات
وزاري: ٢٠٢٦ تمهيدي
وتشمل أوامر نسخ البيانات وأوامر (تعليمات) التحميل والخزن حيث تحمل هذه الأوامر القيم وتنقل البيانات فوراً بين الذاكرة وسجلات عامة الأغراض مثل أوامر (MOV, Push, POP).
وأوامر سلسلة نصية String وهي خاصة للتعامل مع سلسلة نصية من أحجام مختلفة مثل أوامر (النقل Moves، التحميل Loads، الخزن Stories).
وأوامر الإدخال والإخراج حيث تقوم هذه الأوامر بعمليات الإدخال والإخراج مثل أوامر (IN, OUT).
ما المقصود بعمليات ضبط الإنسياب (Flow Control Operation)؟تكرر ٢ مرات
وزاري: ٢٠٢٥ تمهيدي
وتشمل أوامر التحكم أو التنقل في البرنامج، مثل أوامر القفز والتفرع التي تغير برنامج ضبط الإنسياب، ومن الأمثلة على هذه الأوامر (Jmp, Call, Ret).
كيف يتم تصنيف الأوامر على أساس العنونة؟ وما الأشكال التي يتخذها المعامل؟تكرر ٢ مرات
وزاري: ٢٠٢٥ د٢
يتم تصنيف الأوامر على أساس العنونة تبعاً لصيغة الأمر (Instruction Format)، وكل أمر له قسمان: أحدهما يشير إلى نوع العملية المطلوب تنفيذها في المعالج يسمى Opcode (شفرة العملية)، والآخر يشير إلى البيانات المطلوب إجراء العمليات عليها يسمى Operand (المعامل). ويمكن للمعامل أن يتخذ أشكالاً متعددة هي:
١- قيمة فورية مباشرة أو ثابتة مثل 15، 20، 'a'.
٢- أحد سجلات المعالج (Register) مثل A، DB.
٣- موقع محدد في الذاكرة يتم تحديده عن طريق العنوان (Memory address) مثل [300]، [500].
٤- منافذ الإدخال والإخراج (I/O ports).
ما حجم البايتات التي تأخذها الأوامر الآتية: LDA، SHLD؟تكرر ٢ مرات
وزاري: ٢٠٢٥ تمهيدي
الأمر LDA: أوامر بحجم بايتين (Two-byte) أول byte تحدد للعملية، وثاني byte تحدد للمعامل، مثل أوامر لها معامل واحد فحسب.
الأمر SHLD: أوامر بحجم أربعة بايت (Four Byte) أول byte يحدد للعملية، و 3bytes بعدها تحدد لعنوان المعامل بحجم 24-bit، مثل أوامر لها ثلاثة معاملات.
ما المقصود بالعنونة؟ وما هي طرائقها؟تكرر ١٤ مرات
وزاري: ٢٠٢٦ د١
يقصد بالعنونة هو تنظيم الذاكرة وتسهيل ادارتها عن طريق تقسيمها الى أجزاء ووضع عناوين محددة لكل جزء بحيث يسهل تحميل البرامج في الذاكرة. وهناك عدة طرق للعنونة منها:
١- العنونة الفورية Immediate Addressing.
٢- العنونة المباشرة Direct Addressing.
٣- العنونة غير المباشرة Indirect Addressing.
٤- العنونة المؤشرة Indexed Addressing.
٥- العنونة النسبية Relative Addressing.
ما المقصود بالعنونة الفورية؟ ثم اذكر مساوئ هذه الطريقة.
وزاري: ٢٠١٨ د٢
عند إعتماد هذه الطريقة فإن التعليمة تحتوي على المعامل كجزء منها. أي إن حقل العنوان يحتوي على المعامل نفسه.
ومن مساوئ هذه الطريقة إن قيمة المعامل ثابتة ولابد من الرجوع الى البرنامج في كل مرة عندما نرغب في تغيير قيمة المعامل.
اشرح العنونة المباشرة (Direct Addressing) مع الرسم.تكرر ٥ مرات
وزاري: ٢٠٢٥ تمهيدي
وهي أكثر طرائق العنونة انتشاراً، ويتم فيها الحصول على العنوان الفعلي من العنوان المبين في التعليمة، أي إن حقل العنوان يحتوي على عنوان موقع الذاكرة الذي يخزن المعامل، ويبين الشكل (٤-٢) طريقة الحصول على المعامل في حالة العنونة المباشرة.
ما مساوئ العنونة المباشرة؟ وما طرائق حلها؟تكرر ٤ مرات
وزاري: ٢٠٢٦ د١
ومن مساوئ العنونة المباشرة إن عدد مواقع الذاكرة المعنونة محدود، فإذا كان حقل العناوين يتكون من مواقع ثنائية عددها N فإنه يمكن عنونة N موقعاً فقط، ويمكن حل هذه المشكلة بعدة طرائق منها:
١- زيادة حجم حقل العناوين وبالتالي حجم التعليمة، إلا ان هذا يتطلب زيادة حجم مواقع الذاكرة.
٢- تخصيص أكثر من موقع ذاكرة لتخزين التعليمة، وتستعمل هذه الطريقة في الحواسيب المايكروية.
ما أهم الفروقات بين العنونة المباشرة والعنونة الفورية؟تكرر ٣ مرات
وزاري: ٢٠٢٦ تمهيدي
العنونة الفورية: التعليمة تحتوي على المعامل كجزء منها، أي إن حقل العنوان يحتوي على المعامل نفسه، ومن مساوئها إن قيمة المعامل ثابتة ولابد من الرجوع الى البرنامج في كل مرة عندما نرغب في تغيير قيمة المعامل.
العنونة المباشرة: يتم فيها الحصول على العنوان الفعلي من العنوان المبين في التعليمة، أي إن حقل العنوان يحتوي على عنوان موقع الذاكرة الذي يخزن المعامل، ومن مساوئها إن عدد مواقع الذاكرة المعنونة محدود.
اشرح العنونة غير المباشرة (Indirect Addressing) مع الرسم.تكرر ٢ مرات
وزاري: ٢٠١٨ د١
إن العنوان الفعلي في هذه الطريقة هو محتوى موقع الذاكرة المعنون بواسطة التعليمة. أي إن موقع الذاكرة المعنونة بواسطة العنوان المبين في التعليمة يحتوي على عنوان موقع الذاكرة الذي يخزن فيه المعامل، فللحصول على المعامل لا بد من الرجوع الى الذاكرة مرتين، ويبين الشكل (٤-٣) طريقة الحصول على المعامل في حالة العنونة غير المباشرة.
اشرح العنونة المؤشرة (Indexed Addressing) مع الرسم. وما مزاياها ومساوئها؟تكرر ٢ مرات
وزاري: ٢٠٢٤ د٢
بحسب طريقة العنونة المؤشرة، للحصول على العنوان الفعلي يجب جمع العنوان المبين في التعليمة مع محتوى سجل خاص يسمى بسجل التأشير (Index Register)، ويبين الشكل (٤-٤) طريقة الحصول على العنوان الفعلي.
من مساوئ إعتماد العنونة المؤشرة ضرورة إجراء عملية الجمع للحصول على العنوان الفعلي وهذا يتطلب دائرة خاصة بالجمع، ولكن من مزايا هذه الطريقة بالمقارنة مع العنونة غير المباشرة، هي الرجوع الى الذاكرة مرة واحدة بدلاً من مرتين.
اشرح العنونة النسبية (Relative Addressing) مع الرسم.تكرر ٤ مرات
وزاري: ٢٠٢٥ د٢
هذه الطريقة تشابه طريقة العنونة المؤشرة من حيث طريقة العمل ولكن تختلف عنها باستخدام عداد البرنامج بدلاً من سجل التأشير للحصول على العنوان الفعلي، حيث يجب جمع العنوان المبين في التعليمة مع العنوان المخزون في عداد البرنامج، ويبين الشكل (٤-٥) طريقة الحصول على العنوان الفعلي في العنونة النسبية.
