slti
يغطي lyszt.net slti وتعليمات RISC-V الأخرى بمزيد من التفصيل.
تنسيق الترميز
الوصف
يقارن slti سجلاً بثابت ويكتب 1 أو 0 في الوجهة. وهو slt، الذي يقارن سجلين ويخزّن النتيجة كرقم (انظر تلك الصفحة)، مع توفير القيمة الثانية كقيمة فورية. القيمة الفورية ثابت مُرمَّز في التعليمة، والحرف i في الاسم يدل عليها.
يظهر شكل slti أدناه. عندما تكون القيمة في rs1 أقل من الثابت imm، يتلقى rd القيمة 1، وإلا يتلقى 0.
slti rd, rs1, imm
المقارنة مُوقَّعة، لذا يُقرأ كل من السجل والثابت كأرقام قد تكون سالبة.
استخدمه لمقارنة متغير بعتبة ثابتة معروفة مسبقاً. التحقق مما إذا كان فهرس أقل من 10 أو ما إذا كانت قيمة قد انخفضت تحت حد معين يتطلب تعليمة slti واحدة. السطر التالي يسأل عما إذا كان t0 أقل من صفر، وهو يختبر وجود قيمة سالبة ويضبط t1 على 1 للقيم السالبة و0 خلاف ذلك.
slti t1, t0, 0
يقول دليل RISC-V إن slti يضع 1 في rd إذا كان rs1 أقل من القيمة الفورية الممتدة بالإشارة عندما يُعامل كلاهما كأرقام موقعة، و0 خلاف ذلك. يستخدمه فحص التجاوز في الجمع الموقّع العام، كما هو موضح في صفحة slt، لتسجيل ما إذا كان المعامل سالباً.
يتراوح الثابت من -2048 إلى 2047. للمقارنة بقيمة أكبر، حمّل الثابت في سجل باستخدام li واستخدم slt. يرفض المُجمِّع ثابتاً خارج النطاق مع رسالة خطأ.
مثال
li t0, 3 slti t1, t0, 5 # t1 = 1 (3 < 5)
المصادر
- [1]RISC-V International. The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture. Version 20260120. Section 2.4.1, Integer Register-Immediate Instructions, pages 28 to 29.
- [2]RISC-V International. The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture. Version 20260120. Section 2.4, Integer Computational Instructions, page 27.
