اقرأ في هذا المقال
- مجموعة تعليمات نقل البيانات للمعالج الدقيق 8086
- مجموعة التعليمات الحسابية والمنطقية للمعالج الدقيق 8086
- مجموعة تعليمات السلسلة ونقل التحكم والتحكم في المعالج الدقيق 8086
نحن نعلم أنّ التعليمات هي الأوامر الثنائية المستخدمة لتنفيذ أي عملية، هنا في هذه المقالة، سنناقش مجموعة التعليمات التي يدعمها المعالج الدقيق (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 mem, AL/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
تأخذ هذه التعليمات المعالج إلى حالة التوقف / الخمول عن طريق إنهاء التنفيذ الحالي.