مجموعة التعليمات للمعالج الدقيق Instruction Set of 8086 Microprocessor

اقرأ في هذا المقال


نحن نعلم أنّ التعليمات هي الأوامر الثنائية المستخدمة لتنفيذ أي عملية، هنا في هذه المقالة، سنناقش مجموعة التعليمات التي يدعمها المعالج الدقيق (8086)، يدعم المعالج الدقيق (8086) العديد من التعليمات بما في ذلك تلك التي يدعمها المعالج الدقيق (8085)، ومع ذلك، يدعم المعالج الدقيق (8086) بعض التعليمات الإضافية.

مجموعة تعليمات نقل البيانات للمعالج الدقيق 8086:

تمّ تصنيف مجموعة التعليمات في المعالج الدقيق (8086) على النحو التالي:

تعليمات نقل البيانات Data Transfer Instruction:

تتضمن هذه المجموعة التعليمات المستخدمة لنقل البيانات من مكان إلى آخر، في مجموعة نقل البيانات من التعليمات، يمكن نقل البيانات أو العنوان إمّا إلى منافذ السجلات أو الذاكرة أو منافذ الإدخال / الإخراج، من أجل إنجاز أي نقل للبيانات، يجب معرفة المصدر والوجهة، لذلك، تتضمن هذه التعليمات معاملين، أي المصدر (source) والوجهة (destination)، يجب أن يكون حجم المعامل (operand) هو نفسه.

يحتفظ المصدر إمّا بالبيانات الفورية أو السجل أو موقع الذاكرة، بينما تحمل الوجهة إمّا عنوان أي موقع ذاكرة أو سجل، تعليمات نقل البيانات المختلفة هي كما يلي:

MOV  mem/r2, r1

MOV  r2, mem

MOV  r/mem, data

MOV  AL/AX, mem

إذا كانت البيانات الموجودة في الذاكرة (8) بت، فسيتم نقلها إلى بت العنوان السفلي للمجمع (accumulator)، وإذا كانت البيانات (16) بت، فسيتم نقلها إلى عنوان الترتيب الأعلى للمجمع.

MOV  memAL/AX

PUSH  r/mem

يسمح بنقل بيانات (16) بت الموجودة في الذاكرة أو السجل الحالي كمعامل إلى ذاكرة المكدس، يتم إنشاء ذاكرة المكدس (stack memory) هذه عندما يتم إنقاص مؤشر المكدس (SP) بمقدار (2).

POP  r/mem

يتم نقل البيانات الموجودة في ذاكرة المكدس إمّا إلى سجل (16) بت أو موقع الذاكرة المحدد في المعامل ويتم زيادة مؤشر المكدس (SP) بمقدار (2).

XCHG  r2/mem, r1

IN  A, DX

IN  A, addr8

OUT  DX, A

OUT  addr8, A

يتم نقل البيانات الموجودة في المجمع إلى المنفذ الذي ورد عنوانه في التعليمات.

LEA  r, mem

تقوم هذه التعليمات بتحميل السجل بالعنوان الفعّال (effective address) لموقع الذاكرة.

LDS  r, mem

LAHF

SAHF

يقوم بنقل البيانات الموجودة في البايت الأعلى لسجل العلم إلى سجل علم البايت الأقل.

مجموعة التعليمات الحسابية والمنطقية للمعالج الدقيق 8086:

التعليمات الحسابية Arithmetic Instructions:

تُستخدم هذه التعليمات لتنفيذ التعليمات الحسابية مثل الجمع والطرح والضرب والقسمة والزيادة والإنقاص، يتم تغيير أعلام المعالج الدقيق (8086) عند تنفيذ التعليمات الحسابية والمنطقية، في الأساس، تنعكس حالة نتيجة العمليات في العلم.

ADD  r2, r1

ADD  r, data

تتم إضافة البيانات الفورية في المعامل مع البيانات الموجودة في السجل ويتم تخزين النتيجة في هذا السجل المحدد.

ADD  A, data

ADC  r2, r1

ADC  mem, data

ADC  A, data

تتم إضافة البيانات الفورية مع محتوى المجمع ويتم تخزينها في المجمع.

AAA

عند إضافة اثنين من بيانات (ASCII)، يتم استخدام هذه التعليمات لتحويل النتيجة في المجمع من أجل إجراء تصحيح (BCD) غير المعبأ (unpacked BCD).

DAA

SUB  r2, r1

SUB  mem, data

يتم طرح البيانات الفورية في المعامل من البيانات الموجودة في الذاكرة وتخزين نتيجة العملية في الذاكرة.

SUB  A, data

SBB  r2, r1

SBB  r, data

SBB  A, data

يتم طرح البيانات الفورية وبت الحمل من البيانات الموجودة في المجمع، ويحمل المجمع نفسه نتيجة الطرح.

AAS

MUL  r

يتم ضرب البيانات غير الموقعة في السجل بالبيانات غير الموقعة في المجمع ويؤدي الاحتفاظ بسجل (AX) إلى تشغيل (8) بت ويخزن (AX وDX) النتيجة في عملية (16) بت.

IMUL  r

AAM

نتيجة مضاعفة بيانات (BCD) غير المعبأة هي قيمة ثنائية مخزنة في سجل (AX)، لذلك، يتم استخدام هذه التعليمات لتحويل البيانات الثنائية إلى (BCD) غير معبأ.

DIV  r

NEG  r/mem

INC  r/mem

DEC  r/mem

CMP  r2, r1

يتم تعديل حالة سجل العلم من خلال مقارنة بيانات السجلين دون تغيير بيانات السجلات، يستخدم الطرح للمقارنة.

CMP  mem, r

CMP  A, data

تتم مقارنة البيانات الموجودة في المجمع بالبيانات الفورية الواردة في المعامل لتعديل العلم (flag).

التعليمات المنطقية Logical Instructions:

تؤدي هذه التعليمات عمليات مثل (AND وOR)، وتكملة وتحويل وتدوير البيانات الثنائية، يتم تمثيل نتيجة العملية التي يتم تنفيذها من خلال التعليمات المنطقية على أنّها حالة سجل العلم.

AND  r2, r1

AND  A, data

يتم (ANDed) البيانات الفورية مع البيانات الموجودة في المجمع، والمجمع يخزن النتيجة.

OR  mem, r1

OR  A, data

XOR  r2, r1

يتم تنفيذ عملية (OR) الحصرية من خلال هذه التعليمات على البيانات الموجودة في السجل (1 و2) ويحمل السجل (2) نتيجة العملية.

TEST  r2, r1

تقوم هذه التعليمات بتنفيذ وتشغيل البيانات الموجودة في سجلين ويتم استخدام المخرجات لتعديل حالة سجل العلم.

NOT  r/mem

يولد مجموعة من البيانات الموجودة في السجل أو الذاكرة.

SHL  r/mem

SHR  r/mem

بايت البيانات ينتقل إلى اليمين، لذلك، يتحول (LSB) الآن لحمل العلم و(MSB) يصبح (0).

ROL  r/mem

RCL  r/mem

يتم تدوير بايت بيانات السجل أو الذاكرة إلى اليسار حيث يتم تحميل (LSB) مع (CF) ويتم تحميل (CF) مع (MSB).

ROR  r/mem

يقوم بتدوير بايت البيانات في الاتجاه الصحيح وهذه المرة يتم نقل (LSB) إلى كل من (MSB وCF).

RCR  r/mem

يتم تدوير بايت البيانات في السجل أو الذاكرة إلى اليمين، ويتم نقل (CF) إلى (MSB) ويتم نقل (LSB) إلى (CF).

مجموعة تعليمات السلسلة ونقل التحكم والتحكم في المعالج الدقيق 8086:

تعليمات السلسلة String Manipulation Instruction:

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

REPZ/REPE

متى كانت بادئة هذه التعليمات موجودة في أي تعليمات سلسلة، ثمّ يسمح بالتنفيذ المتكرر لتلك التعليمات حتى يصبح (ZF) يساوي (0).

REPNZ/REPNE

تسمح هذه التعليمات بالتنفيذ المتكرر لتعليمات السلسلة حتى يصبح (ZF=1).

CMPS

يتم استخدامه للمقارنة بين بايتات السلسلة أو الكلمات، يتم طرح بايت / كلمة بيانات السلسلة الموجودة في مقطع إضافي من مقطع البيانات والنتيجة تعدل حالة العلامات.

SCAS

يطرح بايت بيانات السلسلة في المقطع الإضافي من البيانات الموجودة في المجمع ويعدل العلامات.

LODS

يتم نسخ بايت السلسلة من البيانات الموجودة في مقطع البيانات إلى المجمع ويزيد / ينقص (SI) تلقائيًا على أساس علم الاتجاه (direction flag).

STOS

تعليمات نقل التحكم Control Transfer Instruction:

تتكون هذه المجموعة من تعليمات مثل تعليمات الاتصال والقفز والحلقة ومقاطعة البرامج التي تتحكم بشكل أساسي في تشغيل المعالج، لا تقوم هذه التعليمات بتعديل حالة سجلات العلم.

CALL  r/mem

تنقل هذه التعليمات عنصر التحكم إلى العنوان الفعّال داخل المقطع المخزن في السجل أو موقع الذاكرة المحدد في المعامل.

RET

(RET) ينقل عنصر التحكم إلى البرنامج / الإجراء الفعلي من الإجراء المسمّى سابقًا.

JMP  disp16

JMP8

JMP  r/mem

LOOP  disp8

INT  type

تعليمات التحكم في المعالج Processor Control Instruction:

تتضمن هذه المجموعة تعليمات لإعداد أو مسح أعلام الحمل والتوجيه والمقاطعة داخل المعالج.

CLC

CMC

تولد هذه التعليمات قيمة مكملة لـ (CF).

STC

STI

CLI

HLT

تأخذ هذه التعليمات المعالج إلى حالة التوقف / الخمول عن طريق إنهاء التنفيذ الحالي.


شارك المقالة: