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