bgtzزائف

bgtz

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

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

الوصف

bgtz يتفرع عندما تكون القيمة في السجل موجبة. يعني الاسم branch if greater than zero. يقفز النموذج أدناه إلى الموضع المُعنون عندما تكون rs أكبر من الصفر، ويمر إلى التعليمة التالية بخلاف ذلك.

bgtz rs, label

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

blt zero, rs, label

لا يملك RISC-V تفرعًا لـ greater than، لذا يتم تبديل المعاملات ويقوم تفرع less-than بالعمل، بالطريقة نفسها التي يُبنى بها bgt. المقارنة مُوقَّعة. الصفر لا يتفرع، وهذا ما يفصل bgtz عن bgez. راجع blt للتفرع الأساسي.

يناسب bgtz حلقة ينبغي أن تستمر ما دام هناك شيء متبقٍ للمعالجة، مثل عدد العناصر المتبقية الذي يزيد على الصفر. كما يختبر ما إذا كانت النتيجة أكبر من الصفر.

bgtz a0, found

يقفز السطر أعلاه إلى found عندما يحمل a0 القيمة 1 أو أكثر. القيمة 0 أو أي عدد سالب تتابع إلى التعليمة التالية.

يوسّع إلى

blt zero, rs, label

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

مثال

li t0, 4
bgtz t0, done   # t0 > 0, so jump to 'done'