csrrci

csrrci

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

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

Описание

csrrci — это csrrc с константной маской вместо регистра. Буква i означает immediate (непосредственное значение), то есть константу, записанную в инструкции. Константа uimm — это число от 0 до 31, поскольку она хранится в 5 битах. Старое значение CSR записывается в rd, затем каждый бит, равный 1 в uimm, сбрасывается в 0 в CSR.

csrrci rd, csr, uimm

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

csrrci t1, mstatus, 8

Таким способом можно сбрасывать только биты с 0 по 4. Когда uimm равен 0, CSR читается, но не записывается. Когда rd — это zero, старое значение отбрасывается, что является сокращением csrci. См. csrrc для регистровой формы.

Пример

csrrci t1, mstatus, 8   # clears bit 3 of mstatus, t1 = old mstatus