مجموعة التعليمات للمعالج الدقيق Instruction Set of 8085 Microprocessor
مجموعات الأوامر في المعالج الدقيق 8085: دليل شامل
تُمثل الأوامر (Instructions) اللبنة الأساسية التي توجه المعالج الدقيق لتنفيذ عمليات محددة على البيانات. وكل معالج يمتلك مجموعة فريدة من الأوامر التي يفهمها وينفذها، وتُعرف هذه المجموعة باسم "مجموعة الأوامر" (Instruction Set).
صُمم المعالج الدقيق الشهير Intel 8085 ليدعم مجموعة أوامر قوية وفعالة، تم تصنيفها وظيفيًا إلى خمس فئات رئيسية لتسهيل فهمها واستخدامها في البرمجة. يهدف هذا المقال إلى شرح هذه الفئات بالتفصيل.
مصطلحات هامة
-
المعالج الدقيق (Microprocessor): هو العقل المدبر للحاسوب، وهو دائرة متكاملة تقوم بتنفيذ العمليات الحسابية والمنطقية والتحكمية.
-
السجل (Register): وحدة تخزين صغيرة وسريعة جدًا داخل المعالج تُستخدم لتخزين البيانات مؤقتًا أثناء تنفيذ العمليات.
-
شفرة العملية (Opcode): هو الجزء من الأمر الذي يحدد نوع العملية التي يجب على المعالج تنفيذها (مثل الجمع، النقل، إلخ).
1. مجموعة تعليمات نقل البيانات (Data Transfer Instructions)
تُستخدم هذه المجموعة من الأوامر لنقل البيانات من موقع إلى آخر داخل نظام المعالج. لا تُعدل هذه الأوامر محتوى البيانات، بل تقوم بنسخها فقط. يمكن أن يتم النقل بين:
-
سجل وآخر.
-
سجل والذاكرة.
-
الذاكرة وسجل.
-
منافذ الإدخال/الإخراج والسجلات.
أمثلة شائعة:
-
MOV Rd, Rs: انسخ البيانات من السجل المصدر (Rs) إلى السجل الهدف (Rd).
-
MVI R, 8-bit data: حمّل بيانات فورية بحجم 8 بت في السجل (R).
-
LDA 16-bit address: حمّل محتوى موقع الذاكرة المحدد بالعنوان في المُراكم (Accumulator).
-
STA 16-bit address: خزّن محتوى المُراكم في موقع الذاكرة المحدد بالعنوان.
2. مجموعة التعليمات الحسابية (Arithmetic Instructions)
تُستخدم هذه المجموعة لإجراء العمليات الحسابية الأساسية مثل الجمع والطرح والزيادة والنقصان. تُنفذ معظم هذه العمليات على البيانات المخزنة في المُراكم.
أمثلة شائعة:
-
ADD R: اجمع محتوى السجل (R) مع محتوى المُراكم، وخزّن النتيجة في المُراكم.
-
SUB R: اطرح محتوى السجل (R) من محتوى المُراكم، وخزّن النتيجة في المُراكم.
-
INR R: زد قيمة البيانات في السجل (R) بمقدار واحد.
-
DCR R: أنقص قيمة البيانات في السجل (R) بمقدار واحد.
3. مجموعة التعليمات المنطقية (Logical Instructions)
تُستخدم هذه المجموعة لإجراء عمليات منطقية على مستوى البت (Bitwise Operations) مثل AND, OR, XOR، بالإضافة إلى عمليات المقارنة والإزاحة.
أمثلة شائعة:
-
ANA R: نفّذ عملية AND المنطقية بين محتوى السجل (R) والمُراكم.
-
ORA R: نفّذ عملية OR المنطقية بين محتوى السجل (R) والمُراكم.
-
XRA R: نفّذ عملية XOR المنطقية بين محتوى السجل (R) والمُراكم.
-
CMP R: قارن محتوى السجل (R) مع المُراكم (عن طريق الطرح) وقم بتحديث الأعلام (Flags) دون تغيير قيمة المُراكم.
-
RLC: قم بإزاحة محتوى المُراكم إلى اليسار بمقدار بت واحد.
4. مجموعة التعليمات المتفرعة (Branching Instructions)
تتحكم هذه المجموعة في مسار تنفيذ البرنامج. فبدلاً من تنفيذ الأوامر بالترتيب، تسمح هذه التعليمات بالقفز إلى أجزاء مختلفة من البرنامج، إما بشكل غير مشروط أو بناءً على حالة معينة (مثل نتيجة عملية سابقة).
أمثلة شائعة:
-
JMP 16-bit address: اقفز بشكل غير مشروط إلى العنوان المحدد لتنفيذ الأمر التالي.
-
JZ 16-bit address: اقفز إلى العنوان المحدد فقط إذا كانت نتيجة العملية الأخيرة صفرًا (Zero Flag = 1).
-
JNC 16-bit address: اقفز إلى العنوان المحدد فقط إذا لم يكن هناك حمل (Carry Flag = 0).
-
CALL 16-bit address: استدعِ برنامجًا فرعيًا (subroutine) موجودًا في العنوان المحدد.
-
RET: عُد من البرنامج الفرعي إلى البرنامج الرئيسي.
5. تعليمات التحكم والآلة (Machine Control Instructions)
تُستخدم هذه المجموعة لإدارة عمليات المعالج الداخلية والتحكم في حالته العامة. لا تتضمن عمليات على البيانات بشكل مباشر، بل تؤثر على سلوك المعالج.
أمثلة شائعة:
-
HLT: أوقف تنفيذ البرنامج وأدخل المعالج في حالة توقف.
-
NOP: (No Operation) لا تقم بأي عملية. يُستخدم هذا الأمر غالبًا لإضافة تأخير زمني بسيط.
-
EI: قم بتمكين نظام المقاطعات (Enable Interrupts).
-
DI: قم بتعطيل نظام المقاطعات (Disable Interrupts).