csrwi
псевдоlyszt.net охватывает csrwi и другие инструкции RISC-V более подробно.
Описание
csrwi записывает константу в управляющий регистр. Управляющий регистр состояния, или CSR, хранит состояние процессора, такое как адрес обработчика ловушек и переключатели прерываний (см. csrrw). Константа uimm — это число от 0 до 31, поскольку она хранится в 5 битах. Приведённая ниже форма записывает её в CSR и отбрасывает старое значение.
csrwi csr, uimm
Это псевдоинструкция — читаемое имя, которое ассемблер переписывает в реальную инструкцию. Она превращается в приведённую ниже инструкцию, где rd — это zero, поэтому старое значение не читается.
csrrwi zero, csr, uimm
Следующая строка записывает 0 в mie, что отключает все источники прерываний.
csrwi mie, 0
Значение больше 31 не помещается, поэтому большее значение сначала помещается в регистр и записывается с помощью csrw.
Разворачивается в
csrrwi zero, csr, uimm
Ассемблер заменяет эту псевдоинструкцию реальной инструкцией или инструкциями, перечисленными выше.
Пример
csrwi mie, 0 # mie = 0
