ISA와 어셈블리
RISC-V의 표준 호출 규약에서 정수 인자와 반환값을 전달하는 데 사용하는 레지스터로 올바른 것은?
- A인자는 s0~s7, 반환값은 ra
- B인자는 a0~a7, 반환값은 a0(와 a1)
- C인자는 모두 스택, 반환값은 sp
정답과 해설 보기
정답: B. 인자는 a0~a7, 반환값은 a0(와 a1)
RISC-V의 표준 호출 규약에서는 정수 인자를 최대 8개까지 a0~a7(x10~x17)에 넣어 전달하고, 반환값은 a0에, 64비트 값 등은 a0와 a1 두 개에 넣어 돌려줍니다. 메모리보다 빠른 레지스터로 주고받으므로 함수 호출의 부담이 작아집니다. 8개를 넘는 인자는 스택에 둡니다. 부동소수점 인자는 fa0~fa7을 사용합니다.