csrrc

csrrc

Asembler RISC-V Referencja

lyszt.net obejmuje csrrc i inne instrukcje RISC-V w większych szczegółach.

Opis

csrrc odczytuje rejestr sterowania i zeruje w nim bity. Rejestr sterowania i stanu, czyli CSR, przechowuje stan procesora, taki jak adres procedury obsługi pułapek i przełączniki przerwań (zobacz csrrw). Nazwa jest skrótem od atomowego odczytu i zerowania bitów w CSR. Stara wartość CSR trafia do rd, następnie każdy bit, który ma wartość 1 w rs1, jest zerowany w CSR. Bity, które mają wartość 0 w rs1, zachowują swoją wartość.

csrrc rd, csr, rs1

Rejestr rs1 działa jako maska, wzorzec, którego bity o wartości 1 wybierają, które bity zmienić. Poniższe wiersze zerują bit 3 rejestru mstatus, co wyłącza globalne zezwolenie na przerwania, i pozostawiają poprzednią wartość w t1.

li t0, 8
csrrc t1, mstatus, t0

Gdy rs1 to zero, CSR jest odczytywany i nigdy nie jest zapisywany. Gdy rd to zero, stara wartość jest odrzucana, co stanowi skrót csrc. Zobacz csrrs dotyczące ustawiania bitów i csrrw dotyczące listy CSR w tym symulatorze.

Podręcznik RISC-V mówi, że csrrc z rs1=x0 w ogóle nie zapisuje CSR.

Przykład

li t0, 8
csrrc t1, mstatus, t0   # clears bit 3 of mstatus, t1 = old mstatus