srli

srli

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

يغطي lyszt.net srli وتعليمات 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

الوصف

يقوم srli بتحريك البتات إلى اليمين بمقدار ثابت ويضع أصفارًا في المواضع العلوية التي تم إخلاؤها. وهو الصيغة ذات المقدار الثابت من srl، الذي يغطي الآلية والملء بالأصفار. يشير الحرف i إلى immediate، وهو ثابت مُرمَّز في التعليمة.

تظهر صيغة srli أدناه، حيث amount هو رقم ثابت من 0 إلى 31.

srli rd, rs1, amount

الإزاحة إلى اليمين تنصّف الرقم مرة واحدة لكل منزلة يتم تحريكها، والملء بالأصفار يعامل القيمة على أنها ليست سالبة أبدًا، لذا يقسم srli عددًا غير مُوقَّع على قوة للعدد اثنين دون باقٍ. السطر التالي يقسم t0 على أربعة.

srli t0, t0, 2

عند دمجه مع AND للتقنيع، يستخرج srli حقلًا واحدًا من قيمة محزومة. حرّك الحقل إلى الأسفل، ثم طبّق andi للإبقاء على بتاته فقط. تتطلب قراءة البايت الثاني من كلمة إزاحة إلى اليمين بمقدار 8 وعملية AND مع 0xff.

يرمّز دليل RISC-V الإزاحات الثابتة كتخصيص لصيغة النوع I، وهي أحد تخطيطات التعليمات القياسية. يشغل مقدار الإزاحة البتات الخمس السفلية من حقل immediate، ويميّز البت 30 من التعليمة بين الإزاحتين إلى اليمين. ينفّذ srli إزاحة منطقية إلى اليمين، وتدخل الأصفار إلى البتات العلوية.

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

مثال

li t0, -8
srli t1, t0, 1   # t1 = 2147483644 (zero-filled)