csrrزائف

csrr

زائف
تجميع RISC-V مرجع

يغطي 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