csrc
pseudolyszt.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
