csrrsi

csrrsi

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

lyszt.net csrrsi और अन्य RISC-V निर्देशों को अधिक विस्तार से कवर करता है।

विवरण

csrrsi एक स्थिर मास्क के साथ csrrs है जो रजिस्टर के स्थान पर होता है। i का अर्थ immediate है, एक स्थिरांक जो निर्देश में लिखा जाता है। स्थिरांक uimm 0 से 31 तक की संख्या है क्योंकि यह 5 बिट्स में संग्रहीत होता है। CSR का पुराना मान rd में जाता है, फिर uimm में जो भी बिट 1 है वह CSR में 1 पर सेट हो जाता है।

csrrsi rd, csr, uimm

नीचे दी गई पंक्ति mstatus के बिट 3 को सेट करती है और पिछले मान को t1 में छोड़ देती है। 8 बाइनरी 1000 है।

csrrsi t1, mstatus, 8

इस तरह केवल बिट 0 से 4 सेट किए जा सकते हैं। mstatus का बिट 3, ग्लोबल इंटरप्ट इनेबल, फिट बैठता है। mie का बिट 11, एक्सटर्नल इंटरप्ट इनेबल, फिट नहीं बैठता, इसलिए उसके लिए 0x800 रखने वाले रजिस्टर के साथ csrrs की आवश्यकता होती है। जब uimm 0 होता है तो CSR पढ़ा जाता है और लिखा नहीं जाता। जब rd zero होता है तो पुराना मान त्याग दिया जाता है, जो csrsi शॉर्टहैंड है। रजिस्टर रूप के लिए csrrs देखें।

उदाहरण

csrrsi t1, mstatus, 8   # sets bit 3 of mstatus, t1 = old mstatus