csrrsi

csrrsi

تجميع RISC-V مرجع

يغطي lyszt.net csrrsi وتعليمات RISC-V الأخرى بمزيد من التفصيل.

الوصف

csrrsi هو csrrs مع قناع ثابت بدلاً من سجل. يرمز الحرف i إلى immediate، وهو ثابت يُكتب في التعليمة. الثابت uimm هو رقم من 0 إلى 31 لأنه يُخزَّن في 5 بتات. تُوضَع القيمة القديمة لـ CSR في rd، ثم تُضبَط كل بتة تساوي 1 في uimm إلى 1 في CSR.

csrrsi rd, csr, uimm

يضبط السطر أدناه البتة 3 من mstatus ويترك القيمة السابقة في t1. الرقم 8 هو 1000 في النظام الثنائي.

csrrsi t1, mstatus, 8

لا يمكن ضبط سوى البتات من 0 إلى 4 بهذه الطريقة. البتة 3 من mstatus، وهي تمكين المقاطعة العام، تنطبق. أما البتة 11 من mie، وهي تمكين المقاطعة الخارجية، فلا تنطبق، لذا تحتاج تلك إلى csrrs مع سجل يحمل 0x800. عندما يكون uimm يساوي 0، يُقرأ CSR ولا يُكتب. وعندما يكون rd هو zero، تُهمَل القيمة القديمة، وهذا هو اختصار csrsi. راجع csrrs للصيغة المعتمدة على السجل.

مثال

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