remu

remu

RISC-V असेंबली संदर्भ

lyszt.net remu और अन्य 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

विवरण

remu अहस्ताक्षरित शेषफल की गणना करता है, जो एक अहस्ताक्षरित विभाजन के बाद बची हुई मान होती है। इसका divu से वही संबंध है जो rem का div से है। u का अर्थ है कि बिट्स को गैर-ऋणात्मक संख्याओं के रूप में माना जाता है, 0 से लेकर लगभग 4 अरब तक। divu पृष्ठ बताता है कि एक ही बिट्स की हस्ताक्षरित और अहस्ताक्षरित व्याख्याएँ कैसे भिन्न होती हैं।

remu का परिणाम सदैव 0 और भाजक घटा 1 के बीच होता है, इसलिए यह कभी ऋणात्मक नहीं होता और इसका कोई चिह्न नियम नहीं होता। यह इसे किसी स्थिति को वृत्ताकार बफ़र में लपेटने, हैश मानों को एक निश्चित संख्या के स्लॉट्स पर वितरित करने, और एक आवर्ती अनुक्रम में चक्रण करने के लिए उपयोगी बनाता है।

शून्य से शेषफल मूल संख्या लौटाता है।

RISC-V मैनुअल के अनुसार, अहस्ताक्षरित विभाजन में अतिप्रवाह नहीं हो सकता, इसलिए remu में कोई अतिप्रवाह स्थिति नहीं है। शून्य से शेषफल भाज्य के बराबर होता है। मैनुअल सलाह देता है कि जब भागफल और शेषफल दोनों की आवश्यकता हो, तो divu और remu को समान ऑपरेंड्स पर चलाया जाए, ताकि एक प्रोसेसर उन्हें एक ही विभाजन में संयोजित कर सके।

ऐसे भाजक के लिए जो दो की घात हो, एक बिटवाइज़ AND (andi) अधिक सस्ते में वही परिणाम देता है। नीचे दी गई पंक्ति 8 से विभाजन के बाद का शेषफल की गणना करती है, क्योंकि दो की घात से शेषफल मान के निम्नतम बिट्स होते हैं।

andi t0, t0, 7

यह शॉर्टकट केवल दो की घातों पर लागू होता है।

उदाहरण

li t0, -1
li t1, 10
remu t2, t0, t1   # t2 = 5 (t0 read as unsigned)