ISA와 어셈블리

RISC-V의 RV32I(32비트 기본 정수 명령어 집합)가 가진 범용 정수 레지스터로 올바른 것은?

  1. A32비트 폭의 레지스터 32개(x0~x31)
  2. B32비트 폭의 레지스터 8개(x0~x7)
  3. C64비트 폭의 레지스터 64개(x0~x63)
정답과 해설 보기

정답: A. 32비트 폭의 레지스터 32개(x0~x31)

RV32I의 정수 레지스터는 x0~x31의 32개이며 폭은 32비트입니다(64비트 버전인 RV64I에서는 폭이 64비트가 되고 개수는 같은 32개입니다). 명령어에서 레지스터를 지정하는 필드는 5비트이며, 2의 5제곱=32개를 나타낼 수 있습니다. ra, sp, a0 같은 별칭도 있으며 호출 규약에서 역할이 정해져 있습니다. 임베디드용으로는 16개로 줄인 RV32E도 있습니다.

이 분야 연습하기 분야로 돌아가기

ISA와 어셈블리의 다른 문제

  1. 어셈블리 언어와 기계어의 관계로 올바른 것은?
  2. RISC-V의 의사 명령어 'nop'(아무것도 하지 않음)은 어셈블러에 의해 실제로 어떤 명령어로 치환되는가?
  3. RISC-V의 'add' 명령어와 'addi' 명령어의 차이로 올바른 것은?
  4. 위의 RISC-V 코드를 실행한 후 레지스터 a2의 값은 얼마인가?
  5. RISC-V 명령어 'lw t0, 8(sp)'의 동작으로 올바른 것은?