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