csrciпсевдо

csrci

псевдо
RISC-V Ассемблер Ссылка

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