csrcpseudo

csrc

pseudo
Asembler RISC-V Referencja

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

Opis

csrc zeruje bity w rejestrze sterującym. Rejestr sterująco-statusowy, czyli CSR, przechowuje stan procesora, taki jak adres procedury obsługi trapów i przełączniki przerwań (zobacz csrrw). Poniższa postać zeruje każdy bit CSR, który ma wartość 1 w rs, a pozostałe bity pozostawia bez zmian.

csrc csr, rs

Jest to pseudoinstrukcja, czytelna nazwa, którą asembler przepisuje na rzeczywistą instrukcję. Staje się ona instrukcją poniżej, gdzie rd to zero, więc stara wartość jest odrzucana.

csrrc zero, csr, rs

Poniższe wiersze zerują bit 3 rejestru mstatus, co wyłącza globalne zezwolenie na przerwania.

li t0, 8
csrc mstatus, t0

Procesor sam zeruje ten bit, gdy rozpoczyna się trap, a mret go przywraca, więc procedura obsługi rzadko musi to robić. Program używa csrc, aby ochronić krótki fragment kodu przed przerwaniami, a następnie ponownie ustawia bit za pomocą csrs.

Rozwija się do

csrrc zero, csr, rs

Asembler zastępuje tę pseudoinstrukcję rzeczywistą instrukcją lub instrukcjami wymienionymi powyżej.

Przykład

li t0, 8
csrc mstatus, t0   # clears bit 3 of mstatus