csrc
의사lyszt.net은 csrc 및 기타 RISC-V 명령어를 더 자세히 다룹니다.
설명
csrc는 제어 레지스터의 비트를 클리어합니다. 제어 및 상태 레지스터(CSR)는 트랩 핸들러 주소와 인터럽트 스위치 같은 프로세서 상태를 보관합니다(csrrw 참조). 아래 형식은 rs에서 1인 CSR의 모든 비트를 클리어하고 나머지 비트는 그대로 둡니다.
csrc csr, rs
이것은 의사 명령어로, 어셈블러가 실제 명령어로 다시 작성하는 읽기 쉬운 이름입니다. 아래 명령어가 되며, rd가 zero이므로 이전 값은 버려집니다.
csrrc zero, csr, rs
아래 줄은 mstatus의 비트 3을 클리어하여 전역 인터럽트 활성화를 끕니다.
li t0, 8 csrc mstatus, t0
프로세서는 트랩이 시작될 때 이 비트를 스스로 클리어하고, mret이 이를 복원하므로 핸들러가 이를 수행할 필요는 거의 없습니다. 프로그램은 csrc를 사용하여 짧은 코드 구간을 인터럽트로부터 보호한 다음, csrs로 비트를 다시 설정합니다.
확장 대상
csrrc zero, csr, rs
어셈블러는 이 의사 명령을 위에 나열된 실제 명령 또는 명령들로 대체합니다.
예시
li t0, 8 csrc mstatus, t0 # clears bit 3 of mstatus
