csrsiпсевдо

csrsi

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

lyszt.net охватывает csrsi и другие инструкции RISC-V более подробно.

Описание

csrsi устанавливает биты в управляющем регистре из константы. Регистр управления и состояния, или CSR, хранит состояние процессора, такое как адрес обработчика ловушек и переключатели прерываний (см. csrrw). Константа uimm — это число от 0 до 31, потому что она хранится в 5 битах. Приведённая ниже форма устанавливает каждый бит CSR, который равен 1 в uimm, и оставляет остальные биты без изменений.

csrsi csr, uimm

Это псевдоинструкция, читаемое имя, которое ассемблер переписывает в реальную инструкцию. Она превращается в приведённую ниже инструкцию, где rd — это zero, поэтому старое значение отбрасывается.

csrrsi zero, csr, uimm

Следующая строка включает глобальное разрешение прерываний. 8 — это двоичное 1000, поэтому она устанавливает бит 3 регистра mstatus.

csrsi mstatus, 8

Таким способом можно установить только биты с 0 по 4, поэтому для бита 11 регистра mie нужен csrs с регистром. Очистку битов см. в csrci.

Разворачивается в

csrrsi zero, csr, uimm

Ассемблер заменяет эту псевдоинструкцию реальной инструкцией или инструкциями, перечисленными выше.

Пример

csrsi mstatus, 8   # sets bit 3 of mstatus