Navigation

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

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

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

ضمن دروس 8086 microprocessor شرح نواصل معكم ...

في التدوينات الماضية بعض تاريخ عائلات المعالجات CPU – computer interface ثم تحدثنا عن معالجات 4CISC و معالجات RISC وذكرنا الفرق بين معالجات 4CISC و معالجات RISC ومبدأ المعالجة التواردية


واليوم نأخذ تعليمات القفز المشروطة 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 , على الترتيب، العمليات المنطقية بين بتات معاملالمصدر ومعامل الوجهة، ويجري وضع الناتج في معامل الوجهةيمكن أن تكون
أطوال المعاملين إما بايت أو بايتتسمح هذه التعليمات بفحص أو َتغيير حالة بعضبتات
المعطيات، ويؤثر ناتج هذه التعليمات على حالة بعض رايات سجل الحالة.

مثالُتعَادل التعليمات التالية محتوى السجل 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 comments: