rem

rem

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

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

الوصف

يعطي rem باقي القسمة، وهو المقدار المتبقي. قسمة 17 على 5 تساوي 3 مع باقٍ 2. يعيد div القيمة 3 ويعيد rem القيمة 2. الاسم اختصار لكلمة remainder (الباقي). الصيغة موضحة أدناه وتعني rd = باقي قسمة rs1 على rs2.

rem rd, rs1, rs2

وهي تنتمي إلى نفس امتداد الرياضيات M الاختياري الذي تنتمي إليه div.

تعمل التعليمتان على نفس الزوج من الأرقام وتعطيان معًا خارج القسمة وما تبقى. rem هي الصيغة التجميعية لعامل % (باقي القسمة) في اللغات عالية المستوى.

مع الأرقام السالبة يأخذ الباقي إشارة العدد المقسوم. 7 باقي 2 يساوي 1، و-7 باقي 2 يساوي -1. اختبار الأعداد الفردية الذي يتحقق مما إذا كان الباقي عند القسمة على 2 يساوي 1 يعطي إجابة خاطئة للأرقام السالبة. أما التحقق مما إذا كان الباقي صفرًا فيحدد الزوجي أو الفردي لكل إشارة.

يقول دليل RISC-V إن rem يوفر باقي القسمة المقابلة، وإن النتيجة غير الصفرية تحمل إشارة المقسوم. كل قسمة لا تفيض تحقق: المقسوم = المقسوم عليه ضرب خارج القسمة زائد الباقي. الباقي عند القسمة على صفر يساوي المقسوم، وحالة الفيض المُوقَّع، أي العدد الأكثر سلبية مقسومًا على -1، تعطي باقيًا يساوي صفرًا. للحصول على خارج القسمة والباقي لنفس القسمة، يوصي الدليل باستخدام div ثم rem على نفس المعاملات، ويمكن للمعالج دمجهما في قسمة واحدة.

تُستخدم البواقي لإعادة العدّاد إلى بداية المخزن المؤقت، ولأخذ الأرقام من عدد، ولتوزيع العناصر على الخانات. الباقي عند القسمة على صفر يعيد العدد الأصلي. يحسب المثال 17 باقي 5 ويترك 2 في t2.

مثال

li t0, 17
li t1, 5
rem t2, t0, t1   # t2 = 2