beqz
زائفيغطي lyszt.net beqz وتعليمات RISC-V الأخرى بمزيد من التفصيل.
الوصف
يتفرع beqz عندما يحمل سجل القيمة صفرًا. يعني الاسم: تفرّع إذا كان يساوي صفرًا. بالصيغة أدناه، يقفز المعالج إلى الموضع المُعنون عندما يكون rs صفرًا، وإلا يتابع إلى التعليمة التالية.
beqz rs, label
beqz تعليمة زائفة، أي اسم مقروء يعيد المُجمّع كتابته إلى تعليمة حقيقية. تصبح التعليمة أدناه، التي تقارن السجل بـ zero، وهو سجل خاص يحمل دائمًا القيمة 0.
beq rs, zero, label
يمنح beqz طريقة أقصر لكتابة المقارنة الأكثر شيوعًا. راجع beq لمعرفة كيفية عمل التفرع والعناوين.
يظهر الصفر كثيرًا في الشيفرة منخفضة المستوى، ولهذا يوجد هذا الاختصار. تشير البايتة الصفرية إلى نهاية النص. والصفر هو الإشارة المعتادة إلى نجاح عملية. ويمثل الصفر أيضًا قيمة فارغة أو مفقودة، وتنتهي حلقات العد التنازلي عند الصفر. يُستخدم اختبار الصفر بعد تحميل محرف لاكتشاف نهاية سلسلة نصية، وعلى حالة مُرجعة لاتخاذ مسار النجاح، وعلى عدّاد لإنهاء حلقة.
يذكر دليل RISC-V سببًا واحدًا لكون تفريعاته تقارن سجلين بدلًا من مقارنة سجل واحد بالصفر. تتطلب المقارنات مع الصفر تأخيرًا غير بسيط في الدائرة، لذا تكون مكلفة تقريبًا مثل مقارنات المقدار الحسابية. لذلك فإن beqz تعليمة زائفة تستخدم beq مع zero.
السطر الأول أدناه أوضح في القراءة من الثاني، الذي يصرّح بالمقارنة مع الصفر.
beqz t0, done beq t0, zero, done
توجد التعليمات الزائفة من أجل قابلية القراءة، والشيفرة الآلية التي تنتجها متطابقة. وعكسها هو bnez، الذي يتفرع عندما لا تكون القيمة صفرًا.
يوسّع إلى
beq rs, zero, label
يستبدل المُجمِّع هذه التعليمة الزائفة بالتعليمة الحقيقية أو التعليمات المذكورة أعلاه.
مثال
li t0, 0 beqz t0, done # t0 == 0, so jump to 'done'
