csrci
псевдоlyszt.net охватывает csrci и другие инструкции RISC-V более подробно.
Описание
csrci сбрасывает биты в регистре управления по константе. Регистр управления и состояния, или CSR, хранит состояние процессора, такое как адрес обработчика ловушек и переключатели прерываний (см. csrrw). Константа uimm — это число от 0 до 31, поскольку она хранится в 5 битах. Приведённая ниже форма сбрасывает каждый бит CSR, равный 1 в uimm, и оставляет остальные биты без изменений.
csrci csr, uimm
Это псевдоинструкция — читаемое имя, которое ассемблер переписывает в реальную инструкцию. Она превращается в приведённую ниже инструкцию, где rd — это zero, поэтому старое значение отбрасывается.
csrrci zero, csr, uimm
Следующая строка отключает глобальное разрешение прерываний. 8 — это двоичное 1000, поэтому она сбрасывает бит 3 регистра mstatus.
csrci mstatus, 8
О том, как устанавливать биты, см. csrsi.
Разворачивается в
csrrci zero, csr, uimm
Ассемблер заменяет эту псевдоинструкцию реальной инструкцией или инструкциями, перечисленными выше.
Пример
csrci mstatus, 8 # clears bit 3 of mstatus
