csrrwi

csrrwi

RISC-V Ассемблер Ссылка

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