sltu

sltu

تجميع RISC-V مرجع

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

تنسيق الترميز

R
31–25funct7
24–20rs2
19–15rs1
14–12funct3
11–7rd
6–0opcode
I
31–20imm[11:0]
19–15rs1
14–12funct3
11–7rd
6–0opcode
S
31–25imm[11:5]
24–20rs2
19–15rs1
14–12funct3
11–7imm[4:0]
6–0opcode
B
31–25imm[12,10:5]
24–20rs2
19–15rs1
14–12funct3
11–7imm[4:1,11]
6–0opcode
U
31–12imm[31:12]
11–7rd
6–0opcode
J
31–12imm[20,10:1,11,19:12]
11–7rd
6–0opcode

الوصف

يضبط sltu سجل الوجهة على 1 أو 0 مثل slt، ويقارن بين عددين كقيمتين غير مُوقَّعتين. الاسم اختصار لـ set less than, unsigned. تغطي صفحة slt تخزين نتيجة المقارنة على هيئة 1 أو 0.

يمكن قراءة البتات الـ 32 نفسها كعدد مُوقَّع، حيث تعني أعلى بت قيمة سالبة ويكون المدى من نحو -2 مليار إلى +2 مليار، أو كعدد غير مُوقَّع، حيث لا توجد قيم سالبة ويكون المدى من 0 إلى نحو 4 مليارات. يقرأ slt القيمة المُوقَّعة ويقرأ sltu القيمة غير المُوقَّعة. السجل الذي تكون جميع بتاته مضبوطة على 1 هو -1 بالنسبة إلى slt وأكبر قيمة ممكنة بالنسبة إلى sltu، لذا قد تختلف التعليمةان على مدخلات متطابقة.

استخدم sltu مع الكميات التي لا يمكن أن تكون سالبة، مثل عناوين الذاكرة والأحجام والأعداد والمواضع. مقارنة عنوانَي ذاكرة باستخدام slt المُوقَّعة تعطي نتيجة خاطئة بمجرد أن يصبح العنوان كبيرًا بما يكفي لضبط أعلى بت فيه، لأن القراءة المُوقَّعة تعامله كقيمة سالبة.

يصف دليل RISC-V كلاً من slt وsltu معًا بأنهما المقارنتان المُوقَّعة وغير المُوقَّعة اللتان تكتبان 1 في rd إذا كان rs1 أصغر من rs2 و0 خلاف ذلك. ويعطي السطر أدناه كطريقة لاختبار عدم الصفر، وهو الأمر الزائف snez.

sltu rd, x0, rs2

يظهر شكل sltu أدناه.

sltu rd, rs1, rs2

في الحالة الخاصة أدناه، يصبح rd مساويًا 1 كلما كان rs أي شيء غير الصفر، لأن 0 أصغر من كل قيمة أخرى غير مُوقَّعة. وهذا يختصر أي عدد إلى 1 أو 0.

sltu rd, zero, rs

مثال

li t0, -1
li t1, 1
sltu t2, t0, t1   # t2 = 0 (t0 read as unsigned is huge)