ISA와 어셈블리
RISC-V의 표준 호출 규약에서 정수 인자가 10개인 함수를 호출할 때 9번째와 10번째 인자는 어디로 전달되는가?
- As0와 s1
- Bt0와 t1
- C스택 상
정답과 해설 보기
정답: C. 스택 상
인자용 레지스터는 a0~a7의 8개이므로 9번째 이후는 호출하는 쪽이 스택에 쌓고, 호출받은 쪽은 스택 포인터로부터 정해진 위치에서 읽습니다. 메모리 접근이 늘어나므로 인자가 매우 많은 함수는 조금 느려집니다. 큰 구조체는 구조체에 대한 포인터로 한꺼번에 전달하는 등 인자를 줄이는 방법이 자주 사용됩니다.