csrrwi
lyszt.net은 csrrwi 및 기타 RISC-V 명령어를 더 자세히 다룹니다.
설명
csrrwi는 소스 레지스터 대신 상수를 사용하는 csrrw입니다. i는 immediate(즉시값)를 의미하며, 명령어에 쓰이는 상수입니다. 상수 uimm은 5비트에 저장되므로 0에서 31 사이의 숫자입니다. CSR의 이전 값은 rd에 들어가고 uimm이 CSR에 쓰입니다.
csrrwi rd, csr, uimm
아래 줄은 mie에 0을 써서 모든 인터럽트 소스를 끄고, 이전 mie를 t1에 남깁니다.
csrrwi t1, mie, 0
31을 초과하는 값은 들어가지 않으므로, 더 큰 값은 먼저 레지스터에 넣고 csrrw로 씁니다. rd가 zero이면 CSR을 읽지 않으며, 이것이 csrwi 축약형입니다. CSR이 무엇인지는 csrrw를 참조하세요.
RISC-V 매뉴얼에 따르면 즉시값 형식은 제로 확장된 5비트 부호 없는 값을 취합니다. 즉, 레지스터 전체 폭까지 왼쪽에 0으로 채워집니다.
예시
csrrwi t1, mie, 0 # mie = 0, t1 = old mie
