csrs
псевдоlyszt.net охоплює csrs та інші інструкції RISC-V більш детально.
Опис
csrs встановлює біти в регістрі керування. Регістр керування та стану, або CSR, зберігає стан процесора, як-от адресу обробника пасток і перемикачі переривань (див. csrrw). Наведена нижче форма встановлює кожен біт CSR, який дорівнює 1 у rs, і залишає інші біти без змін.
csrs csr, rs
Це псевдоінструкція — читабельна назва, яку асемблер переписує в справжню інструкцію. Вона перетворюється на наведену нижче інструкцію, де rd — це zero, тож старе значення відкидається.
csrrs zero, csr, rs
Переривання вмикаються двома викликами csrs. Перший встановлює біт 11 у mie — увімкнення зовнішніх переривань. Другий встановлює біт 3 у mstatus — глобальне увімкнення переривань.
li t0, 0x800 csrs mie, t0 li t0, 8 csrs mstatus, t0
Обидва перемикачі мають бути увімкнені, перш ніж процесор прийме переривання. Кнопка також має власний регістр увімкнення, описаний на сторінці GPIO. Див. csrc для очищення бітів.
Посібник RISC-V перелічує csrs і csrc як скорочення для встановлення та очищення бітів CSR, коли старе значення не потрібне.
Розгортається до
csrrs zero, csr, rs
Асемблер замінює цю псевдоінструкцію реальною інструкцією або інструкціями, переліченими вище.
Приклад
li t0, 8 csrs mstatus, t0 # sets bit 3 of mstatus
