csrspseudo

csrs

pseudo
Asembler RISC-V Referencja

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

Opis

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

csrs csr, rs

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

csrrs zero, csr, rs

Przerwania są włączane za pomocą dwóch wywołań csrs. Pierwsze ustawia bit 11 rejestru mie, czyli włączenie przerwań zewnętrznych. Drugie ustawia bit 3 rejestru mstatus, czyli globalne włączenie przerwań.

li t0, 0x800
csrs mie, t0
li t0, 8
csrs mstatus, t0

Oba przełączniki muszą być włączone, zanim procesor przyjmie przerwanie. Przycisk ma również własny rejestr włączenia, opisany na stronie GPIO. Zobacz csrc, aby wyczyścić bity.

Podręcznik RISC-V wymienia csrs i csrc jako skróty do ustawiania i czyszczenia bitów CSR, gdy stara wartość nie jest potrzebna.

Rozwija się do

csrrs zero, csr, rs

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

Przykład

li t0, 8
csrs mstatus, t0   # sets bit 3 of mstatus