You are on page 1of 4

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

‫ُتفحص أيعازات القفز المشروطة حالة علم أو أكثر من أعالم سجل األعالم ‪ ،‬فإذا حققت أعالم أو عدة‬
‫أعالم شرًطا معيًنا عملية القفز إلى الموقع المحدد بااليعاز ‪ ،‬وإال يتابع المعالج تنفيذ‬
‫األيعاز التي تلي مباشًر ة أيعاز القفز‪ .‬إن جميع االيعازات القفز هي من النوع القصير أي يجب‬
‫أن يكون القفز إلى موقع يقع ضمن مقطع األيعازات الحالي وال يبعد أكثر من ‪ + 127‬أو ‪128‬‬
‫بايت عن البايت األول يعني من (‪ 00‬الى ‪ ) FF‬من االيعاز التالي‪.‬‬
‫ُتستخدم ايعازات القفز الشرطية في تنجيز الحلقات أو العبارات البرمجية مثل ‪ if … then،‬كما‬
‫ُتستخدم بعد ايعاز المقارنة ‪ِ CMP‬لتحديد المعامل األكبر‪.‬‬
‫يبين الجدولين التاليين ايعازات القفز الشرطية‪ ،‬التي تتضمنها مجموعة ايعازات المعالج ‪ 8086‬والتي‬
‫تفحص حالة إحدى اعالم سجل االعالم‪:‬‬

‫رمز االيعاز‬ ‫الشرح‬ ‫األعالم‬


‫‪JZ‬‬ ‫أقفز إذا الناتج صفرا‬ ‫‪ZF=1‬‬
‫‪JNZ‬‬ ‫أقفز إذا الناتج ليس صفرا‬ ‫‪ZF=0‬‬
‫‪JE‬‬ ‫أقفز إذا حصل تساوي‬ ‫‪ZF=1‬‬
‫‪JNE‬‬ ‫أقفز إذا لم يحصل تساوي‬ ‫‪ZF=0‬‬
‫‪JC‬‬ ‫أقفز أذا يوجد محمل‬ ‫‪CF=1‬‬
‫‪JNC‬‬ ‫أقفز أذا ال يوجد محمل‬ ‫‪CF=0‬‬
‫‪JS‬‬ ‫أقفز أذا الناتج سالب‬ ‫‪SF=1‬‬
‫‪JNS‬‬ ‫أقفز أذا الناتج موجب‬ ‫‪SF=0‬‬
‫‪JP‬‬ ‫أقفز أذا عدد الواحدات زوجي‬ ‫‪PF=1‬‬
‫‪JNP‬‬ ‫أقفز أذا عدد الواحدات فردي‬ ‫‪PF=0‬‬
‫‪JO‬‬ ‫أقفز أذا حصل طوفان‬ ‫‪OF=1‬‬
‫‪JNO‬‬ ‫أقفز أذا لم يحدث طوفان‬ ‫‪OF=0‬‬

‫يبين الجدول التالي ايعازات القفز الشرطية‪ ،‬التي تتضمنها مجموعة ايعازات المعالج ‪ 8086‬للتحقق‬
‫من حدوث حالة محددة بعد تنفيذ عملية المقارنة ‪ CMP‬بين معاملين بال إشارة‪.‬‬

‫رمز االيعاز‬ ‫الشرح‬ ‫األعالم‬


‫‪JA‬‬ ‫الهدف‬ ‫المصدر >‬ ‫أقفز إذا‬ ‫‪ZF=0 , CF=0‬‬
‫‪JAE‬‬ ‫الهدف‬ ‫المصدر ≥‬ ‫أقفز إذا‬ ‫‪CF=0‬‬
‫‪JB‬‬ ‫الهدف‬ ‫المصدر <‬ ‫أقفز إذا‬ ‫‪CF=1‬‬
‫‪JBE‬‬ ‫الهدف‬ ‫المصدر ≤‬ ‫أقفز إذا‬ ‫‪ZF=1 , CF=1‬‬
‫ويبين الجدول التالي ايعازات القفز الشرطية‪ ،‬التي تتضمنها مجموعة ايعازات المعالج ‪ 8086‬للتحقق‬
‫من حدوث حالة محددة بعد تنفيذ عملية المقارنة ‪ CMP‬بين معاملين مع اشارة ‪:‬‬

‫رمز االيعاز‬ ‫الشرح‬ ‫األعالم‬


‫‪JG‬‬ ‫الهدف‬ ‫المصدر >‬ ‫أقفز إذا‬ ‫‪SF=OF , ZF=0‬‬
‫‪JGE‬‬ ‫الهدف‬ ‫المصدر ≥‬ ‫أقفز إذا‬ ‫‪OF=SF‬‬
‫‪JL‬‬ ‫الهدف‬ ‫المصدر <‬ ‫أقفز إذا‬ ‫‪OF≠SF‬‬
‫‪JLE‬‬ ‫الهدف‬ ‫المصدر ≤‬ ‫أقفز إذا‬ ‫‪ZF=1 , OF≠SF‬‬

‫‪AL‬‬ ‫مثال‪ :1‬تقارن مجموعة االيعازات التالية بين محتوى ‪ BL‬و ‪ DH‬وتضع القيمة األكبر في‬
‫والقيمة االصغر في السجل ‪. AH‬‬

‫‪MOV DH , 32H‬‬
‫‪MOV BL , 24H‬‬
‫‪CMP BL , DH‬‬
‫‪JAE FIRST‬‬ ‫‪;JMP if BL > DH‬‬ ‫‪CF=0‬‬
‫‪MOV AL , DH‬‬ ‫]‪;[AL] = [DH‬‬
‫‪JMP NEXT‬‬
‫‪FIRST: MOV AH , BL‬‬
‫‪NEXT: HLT‬‬
‫مثال‪ :2‬اكتب برنامًج ا يحسب متوسط خمس قياسات لدرجة الحرارة واكتب الناتج في ‪ AX‬افترض أن‬
‫القياسات الخمسة مخزنة في الذاكرة‪.‬‬
‫الجواب‪:‬‬
‫‪MOV AX,AX‬‬
‫‪MOV BX,BX‬‬
‫‪MOV CX,0005H‬‬
‫‪MOV SI,2000H‬‬
‫]‪BACK: MOV AL,[SI‬‬
‫‪ADD BL,AL‬‬
‫‪INC SI‬‬
‫‪DEC CL‬‬
‫‪JNZ BACK‬‬
‫‪MOV AL,BL‬‬
‫‪MOV CL,05H‬‬
‫‪DIV CL‬‬
‫‪HLT‬‬

You might also like