csrwछद्म

csrw

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

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

विवरण

csrw एक रजिस्टर को कंट्रोल रजिस्टर में कॉपी करता है। एक कंट्रोल और स्टेटस रजिस्टर, या CSR, प्रोसेसर स्थिति रखता है जैसे ट्रैप हैंडलर पता और इंटरप्ट स्विच (देखें csrrw)। नीचे दिया गया रूप rs को CSR में कॉपी करता है और पुराने मान को त्याग देता है।

csrw csr, rs

यह एक स्यूडो-इंस्ट्रक्शन है, एक पठनीय नाम जिसे असेंबलर एक वास्तविक इंस्ट्रक्शन में फिर से लिखता है। यह नीचे दिए गए इंस्ट्रक्शन में बदल जाता है, जहाँ rd zero है ताकि पुराना मान पढ़ा न जाए।

csrrw zero, csr, rs

सबसे आम उपयोग ट्रैप हैंडलर सेट करता है। नीचे दी गई पंक्तियाँ लेबल handler का पता mtvec में डालती हैं।

la t0, handler
csrw mtvec, t0

mtvec के निचले दो बिट मोड चुनते हैं। 00 के साथ, हर ट्रैप mtvec में दिए गए पते पर कूदता है। 01 के साथ, जिसे वेक्टर्ड मोड कहा जाता है, एक इंटरप्ट पते plus 4 गुना उसके कारण कोड पर कूदता है, इसलिए बटन इंटरप्ट, कोड 11, बेस पते से 44 बाइट आगे पहुँचता है। पते के निचले दो बिट खाली होने चाहिए, क्योंकि वे मोड रखते हैं।

RISC-V मैनुअल csrw csr, rs1 को csrrw x0, csr, rs1 के रूप में परिभाषित करता है।

विस्तृत होता है

csrrw zero, csr, rs

असेंबलर इस छद्म-निर्देश को ऊपर सूचीबद्ध वास्तविक निर्देश या निर्देशों से बदल देता है।

उदाहरण

li t0, 0x100
csrw mtvec, t0   # mtvec = 0x100