تعليمات القفز المشروطة Conditional JMP

الكاتب بتاريخ عدد التعليقات : 0
CPU_ 8088/ 8086 - لغة التجميع

ضمن دروس 8086 microprocessor شرح نواصل معكم ...
في التدوينات الماضية بعض تاريخ عائلات المعالجات CPU – computer interface ثم تحدثنا عن معالجات 4CISC و معالجات RISC وذكرنا الفرق بين معالجات 4CISC و معالجات RISC ومبدأ المعالجة التواردية 
هذا روابط التدوينا السابقة 

واليوم نأخذ

تعليمات القفز المشروطة Conditional JMP
تُفحص تعليمات القفز المشروطة حالة راية أو أكثر من رايات سجل الراية، فإذا حققت الراية أو
عدة رايات شرطًا معينًا ُتَنفَّ ْ ذ عملية القفز إلى الموقع المحدد بالتعليمة، وإلا يتابع المعالج تنفيذ
التعليمة التي تلي مباشرًة تعليمة القفز. إن جميع تعليمات القفز هي من النوع القصير أي يجب
أن يكون القفز إلى موقع يقع ضمن مقتطع التعليمات الحالي ولا يبعد أكثر من 127 + أو 128
بايت عن البايت الأول من التعليمة التالية.

CPU_ 8088/ 8086 - لغة التجميع


تُستخدم تعليمات القفز الشرطية في تنجيز الحلقات أو العبارات البرمجية مثل ،if … then كما تُستخدم بعد تعليمة المقارنة CMP لِتحديد المعامل الأكبر.
يبين الجدولين التاليين تعليمات القفز الشرطية، التي تتضمنها مجموعة تعليمات المعالج 8088/8086 والتي تفحص حالة إحدى رايات سجل الراية:

CPU_ 8088/ 8086 - لغة التجميع

يبين الجدول التالي تعليمات القفز الشرطية، التي تتضمنها مجموعة تعليمات المعالج 8088/8086 للتحقق من حدوث حالة محددة بعد تنفيذ عملية المقارنة CMP بين معاملين بلا إشارة.
CPU_ 8088/ 8086 - لغة التجميع

ويبين الجدول التالي تعليمات القفز الشرطية، التي تتضمنها مجموعة تعليمات المعالج 8088/8086 للتحقق من حدوث حالة محددة بعد تنفيذ عملية المقارنة CMP بين معاملين مع اشارة :
CPU_ 8088/ 8086 - لغة التجميع

مثال: تقارن مجموعة التعليمات التالية بين محتوى 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

الى اللقاء في التدوينة القادمة 

لا تنسى تشجيعنا بنشر هذه التدوينة 




0 تعليق على موضوع "تعليمات القفز المشروطة Conditional JMP"

لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر
الإبتساماتإخفاء