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

यह div की तरह ही वैकल्पिक M गणित एक्सटेंशन का हिस्सा है।

दोनों निर्देश संख्याओं के एक ही जोड़े पर काम करते हैं और मिलकर भागफल और शेषफल देते हैं। उच्च-स्तरीय भाषाओं में rem % (मॉड्यूलो) ऑपरेटर का असेंबली रूप है।

नकारात्मक संख्याओं के साथ, शेषफल विभाजित होने वाली संख्या का चिह्न लेता है। 7 का 2 से शेषफल 1 है, और -7 का 2 से शेषफल -1 है। विषम संख्याओं के लिए एक परीक्षण जो यह जांचता है कि 2 से शेषफल 1 के बराबर है या नहीं, नकारात्मक संख्याओं के लिए गलत उत्तर देता है। यह जांचना कि शेषफल शून्य है या नहीं, हर चिह्न के लिए सम या विषम निर्धारित करता है।

RISC-V मैनुअल कहता है कि rem संबंधित विभाजन का अवशेष प्रदान करता है और शून्य-नहीं परिणाम में विभाज्य का चिह्न होता है। प्रत्येक विभाजन जो ओवरफ्लो नहीं करता है, उसमें यह शर्त पूरी होती है कि विभाज्य = विभाजक गुणांक और अवशेष। शून्य से भाग देने पर शेषफल विभाज्य के बराबर होता है, और साइनयुक्त ओवरफ्लो मामले में, -1 से विभाजित सबसे ऋणात्मक संख्या का शेषफल शून्य होता है। उसी विभाजन का कोटिएंट और शेषफल प्राप्त करने के लिए, मैनुअल समान ऑपरेन्ड्स पर पहले div और फिर rem करने की सलाह देता है, जिसे एक प्रोसेसर एक ही विभाजन में जोड़ सकता है।

शेषफल का उपयोग एक काउंटर को बफ़र की शुरुआत पर वापस लाने, किसी संख्या के अंक हटाने और आइटमों को स्लॉट्स में फैलाने के लिए किया जाता है। शून्य से भाग देने पर शेषफल मूल संख्या लौटाता है। उदाहरण 17 का 5 से शेषफल निकालता है और t2 में 2 छोड़ देता है।

उदाहरण

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