blezزائف

blez

زائف
تجميع RISC-V مرجع

يغطي lyszt.net blez وتعليمات RISC-V الأخرى بمزيد من التفصيل.

الوصف

blez يتفرع عندما تكون القيمة في السجل صفرًا أو سالبة. يعني الاسم: تفرّع إذا كانت القيمة أقل من أو تساوي الصفر. الصيغة أدناه تقفز إلى الموضع المُعنون عندما يكون rs عند الصفر أو أقل، وإلا تنتقل إلى التعليمة التالية.

blez rs, label

يتعامل المُجمِّع معها كتعليمة شبهية ويعيد كتابتها إلى التعليمة أدناه، التي تسأل ما إذا كان zero أكبر من أو يساوي السجل.

bge zero, rs, label

تم تبديل المعاملات لأن RISC-V لا يملك تفرعًا من نوع أقل من أو يساوي، لذا يقوم bge بالمهمة، بالطريقة نفسها التي يُبنى بها ble. المقارنة مُوقَّعة. التفرع عند الصفر هو ما يميز blez عن bltz، وهو عكس bgtz، لذا لأي قيمة يتفرع واحد فقط من الاثنين. راجع bge للتفرع الأساسي.

يناسب blez فحص عدم بقاء أي شيء للقيام به. يمكن لحلقة تعالج عددًا من العناصر المتبقية أن تخرج بمجرد أن يصبح العدد صفرًا أو ينخفض دونه.

blez t0, done

السطر أعلاه يقفز إلى done عندما يكون t0 مساويًا لـ 0 أو سالبًا.

يوسّع إلى

bge zero, rs, label

يستبدل المُجمِّع هذه التعليمة الزائفة بالتعليمة الحقيقية أو التعليمات المذكورة أعلاه.

مثال

li t0, 0
blez t0, done   # t0 <= 0, so jump to 'done'