snez
زائفيغطي lyszt.net snez وتعليمات RISC-V الأخرى بمزيد من التفصيل.
الوصف
يختبر snez ما إذا كان السجل يحمل قيمة غير الصفر، وهو عكس seqz. يعني الاسم "عيّن إذا لم يكن مساويًا للصفر". عندما تكون rs غير صفرية، يكتب النموذج أدناه 1 في rd، وعندما تكون rs صفرية يكتب 0.
snez rd, rs
snez تعليمة زائفة، مثل seqz، ويوسّعها المجمّع إلى تعليمة حقيقية. تسأل تلك التعليمة ما إذا كان الصفر أصغر من القيمة.
sltu rd, zero, rs
ينطبق هذا على أي قيمة عدا الصفر. ينفّذ المجمّع هذا التحويل عندما تكتب snez.
غالبًا ما تنتج عملية حسابية قيمة تكون خاصيتها المفيدة الوحيدة هي ما إذا كانت صفرية، مثل عدد العناصر المتبقية، أو الفرق بين شيئين، أو مجموعة من الأعلام. يختزل snez تلك القيمة إلى 1 عندما تكون غير صفرية وإلى 0 عندما تكون صفرية، وهو الشكل القياسي لدالة تُرجع إجابة بنعم أو لا.
يعرّف دليل RISC-V تعليمة snez على أنها تعليمة مجمّع زائفة لـ sltu مع x0 كمصدر أول. تضبط rd على 1 إذا كانت rs2 لا تساوي الصفر، وعلى 0 خلاف ذلك.
يعمل snez مع XOR لاختبار عدم التساوي. نفّذ XOR على القيمتين، وهو ما يعطي نتيجة غير صفرية فقط عندما تختلفان، ثم طبّق snez للحصول على 1 عندما تكونان مختلفتين. إلى جانب seqz، ينتج هذا نتيجة صحيحة أو خاطئة للتساوي ولعدم التساوي، ويمكنك دمجها مع and و or في شروط أكبر دون قفز.
يوسّع إلى
sltu rd, zero, rs
يستبدل المُجمِّع هذه التعليمة الزائفة بالتعليمة الحقيقية أو التعليمات المذكورة أعلاه.
مثال
li t0, 5 snez t1, t0 # t1 = 1
