ضمن دروس 8086 microprocessor شرح نواصل معكم ...
في التدوينات الماضية بعض تاريخ عائلات المعالجات CPU – computer interface ثم تحدثنا عن معالجات 4CISC و معالجات RISC وذكرنا الفرق بين معالجات 4CISC و معالجات RISC ومبدأ المعالجة التواردية
هذا روابط التدوينا السابقة
الدرس الثاني معالجات 4CISC و معالجات RISC - computer interface
الدرس الثالث المعالجات التواردية pipelining
الدرس الخامس المتحكمات الصغرية Microcontroller
الدرس السابع البنية الداخلية للمعالج 8088/ 8086
الدرس الثامن السجلات الداخلية للمعالج 8088/ 8086
الدرس التاسع تنظيم ذاكرة المعالج 8086
الدرس العاشر انماط العنونة addressing modes
الدرس الحادي غشر البرمجة بلغة التجميع assembly language
الدرس الثاني عشر موجِّهات او ايعازات لغة التجميع Assembler Directives
الدرس الثالث عشر تعليمات المعالج 8088/ 8086 - لغة التجميع
واليوم نأخذ
تعليمات القفز المشروطة Conditional JMP
تُفحص تعليمات القفز المشروطة حالة راية أو أكثر من رايات سجل الراية، فإذا حققت الراية أو
عدة رايات شرطًا معينًا ُتَنفَّ ْ ذ عملية القفز إلى الموقع المحدد بالتعليمة، وإلا يتابع المعالج تنفيذ
التعليمة التي تلي مباشرًة تعليمة القفز. إن جميع تعليمات القفز هي من النوع القصير أي يجب
أن يكون القفز إلى موقع يقع ضمن مقتطع التعليمات الحالي ولا يبعد أكثر من 127 + أو 128
بايت عن البايت الأول من التعليمة التالية.
تُستخدم تعليمات القفز الشرطية في تنجيز الحلقات أو العبارات البرمجية مثل ،if … then كما تُستخدم بعد تعليمة المقارنة CMP لِتحديد المعامل الأكبر.
يبين الجدولين التاليين تعليمات القفز الشرطية، التي تتضمنها مجموعة تعليمات المعالج 8088/8086 والتي تفحص حالة إحدى رايات سجل الراية:
يبين الجدول التالي تعليمات القفز الشرطية، التي تتضمنها مجموعة تعليمات المعالج 8088/8086 للتحقق من حدوث حالة محددة بعد تنفيذ عملية المقارنة CMP بين معاملين
بلا إشارة.
ويبين الجدول التالي تعليمات القفز الشرطية، التي تتضمنها مجموعة تعليمات المعالج 8088/8086 للتحقق من حدوث حالة محددة بعد تنفيذ عملية المقارنة CMP بين معاملين مع اشارة
:
مثال: تقارن مجموعة التعليمات التالية بين محتوى BL و DH وتضع القيمة الأكبر في AL
CMP BL, DH
JAE FIRST ; JMP if
BL > DH
MOV AL, DH ; [AL] =
[DH]
JMP NEXT
FIRST: MOV AL, DH ;
[AL] = [BL]
NEXT: …
اختبار ذاتي: اكتب برنامجًا يحسب متوسط خمس قياسات لدرجة الحرارة واكتب الناتج في AX افترض أن القياسات الخمسة مخزنة في الذاكرة.
الجواب
DATA DB
+13,-10,+19,+14,-18;
MOV CX,5 ;LOAD
COUNTER
SUB BX, BX ;CLEAR
BX, USED AS ACCUMULATOR
MOV SI, OFFSET DATA
;SET UP POINTER
BACK: MOVAL,[SI]
;MOVE BYTE INTO AL
CBW ;SIGN EXTEND
INTO AX
ADD BX, AX ;ADD TO
BX
INC SI ;INCREMENT
POINTER
DEC CX ;DECREMENT
COUNTER
JNZ BACK ;LOOP IF
NOT FINISHED
MOV CL,5 ;MOVE COUNT
TO AL
DIV CL ;FIND THE
AVERAGE
التعليمات المنطقية
تنفذ التعليمات AND , OR , XOR , على الترتيب، العمليات المنطقية
بين بتات معامل المصدر ومعامل الوجهة، ويجري وضع الناتج في معامل الوجهة. يمكن أن تكون
أطوال المعاملين إما بايت أو 2 بايت.
تسمح هذه التعليمات بفحص أو َتغيير حالة بعض بتات
المعطيات، ويؤثر ناتج هذه التعليمات على حالة بعض رايات سجل الحالة.
مثال:
ُتعَادل التعليمات التالية محتوى السجل CH وذلك بوضع: 0 في أول بتين، و 1
في آخر بّتين، كما تعكس حالة البت 5
AND CH, FCH ;1111
1100
OR CH, C0H ;1100
0000
XOR CH, 20H ;0010
0000
التعليمة TEST
تنفذ التعليمة TEST
عملية AND المنطقية بين بتات معامل المصدر ومعامل الوجهة.
تؤثر التعليمة TEST فقط على حالة بعض رايات سجل الراية. ولا تخزن ناتج العملية في معامل الوجهة .
مثال: تفحص التعليمات التالية أو ً لا حالة البت الأولى من AL فإذا كانت تساوي
1 فيجري القفز إلى الموقع ذي اللصاقة RIGHT
TEST AL, 1 ; test
right bit
JNZ RIGHT ; if set
التعليمة NOT
ُتعكس التعليمة NOT حالة كل بت من بتات معامل المصدر.
ُتكافئ هذه العملية إجراء المتمم إلى الواحد .one's complement
مثال: بفرض أن CH=99h فإنه بعد تنفيذ التعليمة NOT CH يصبح محتوى CH مساوياً .66h
الى اللقاء في التدوينة القادمة
لا تنسى تشجيعنا بنشر هذه التدوينة
إرسال تعليق
لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر