ISA와 어셈블리
ABI(애플리케이션 바이너리 인터페이스)에 대한 설명으로 올바른 것은?
- A소스 코드 수준에서 함수 이름과 인자 타입을 정한 약속
- BCPU 명령어의 종류와 비트 배열만을 정한 약속
- C호출 규약이나 데이터형의 크기·정렬 등, 기계어 수준에서 프로그램끼리 연결하기 위한 약속
정답과 해설 보기
정답: C. 호출 규약이나 데이터형의 크기·정렬 등, 기계어 수준에서 프로그램끼리 연결하기 위한 약속
ABI는 컴파일된 프로그램이나 라이브러리가 함께 동작하기 위한 기계어 수준의 약속으로, 호출 규약, int·long·포인터의 크기, 구조체 정렬, 시스템 콜 호출 방법 등을 포함합니다. API는 소스 코드에서 함수 사용법을 정하는 것이며, API가 같아도 ABI가 다르면 다시 빌드하지 않는 한 라이브러리를 사용할 수 없습니다. 같은 RISC-V ISA라도 OS나 용도에 따라 ABI가 다를 수 있습니다.