csrrci

csrrci

RISC-V 어셈블리 참조

lyszt.net은 csrrci 및 기타 RISC-V 명령어를 더 자세히 다룹니다.

설명

csrrci는 레지스터 대신 상수 마스크를 사용하는 csrrc입니다. i는 즉시값(immediate)을 의미하며, 명령어에 쓰이는 상수입니다. 상수 uimm은 5비트에 저장되므로 0에서 31까지의 숫자입니다. CSR의 이전 값은 rd에 들어가고, uimm에서 1인 모든 비트는 CSR에서 0으로 지워집니다.

csrrci rd, csr, uimm

아래 줄은 mstatus의 비트 3을 지워 전역 인터럽트 활성화를 끄고, 이전 값을 t1에 남깁니다. 8은 이진수 1000입니다.

csrrci t1, mstatus, 8

이 방법으로는 비트 0에서 4까지만 지울 수 있습니다. uimm이 0이면 CSR은 읽히고 쓰이지 않습니다. rd가 zero이면 이전 값은 버려지며, 이것이 csrci 축약형입니다. 레지스터 형식은 csrrc를 참조하세요.

예시

csrrci t1, mstatus, 8   # clears bit 3 of mstatus, t1 = old mstatus