csrcпсевдо

csrc

псевдо
Асемблер RISC-V Посилання

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