csrr
زائفيغطي lyszt.net csrr وتعليمات RISC-V الأخرى بمزيد من التفصيل.
الوصف
يقرأ csrr سجل تحكم إلى سجل عام. يحتفظ سجل التحكم والحالة، أو CSR، بحالة المعالج مثل عنوان معالج الفخ وسبب آخر فخ (انظر csrrw). ينسخ النموذج أدناه قيمة CSR إلى rd.
csrr rd, csr
يعامله المجمّع كتعليمة زائفة، وهو اسم مقروء يعيد كتابته إلى تعليمة حقيقية. يصبح التعليمة أدناه. ولأن rs1 هو zero، يُقرأ CSR ولا يُكتب إليه شيء.
csrrs rd, csr, zero
يبدأ معالج الفخ بقراءة سجلي CSR. يحتفظ mepc بعنوان التعليمة المقاطعة ويحتفظ mcause بسبب الفخ.
csrr t0, mcause
البت الأعلى في mcause هو 1 في حالة المقاطعة و0 في حالة الاستثناء. البتات الدنيا هي رمز السبب. يترك زر المقاطعة في هذا المحاكي القيمة 0x8000000b، وهي مقاطعة برمز 11، أي المقاطعة الخارجية للآلة.
يعرّف دليل RISC-V csrr rd, csr بأنها csrrs rd, csr, x0.
يوسّع إلى
csrrs rd, csr, zero
يستبدل المُجمِّع هذه التعليمة الزائفة بالتعليمة الحقيقية أو التعليمات المذكورة أعلاه.
مثال
csrr t0, mstatus # t0 = mstatus
