2010-08-12 5 views
1

모든 용어와 혼동스러워집니다.ABI 호출 규칙 및 아치와 혼동 받기

ABI, 호출 규칙 및 하드웨어 아키텍처.

ABI는 아키텍처와 연결됩니다. x86-64는 i386과 다른 ABI를 가지고 있습니다. 그러나 당신은 또한 자신의 호출 규칙을 정의 할 수 있습니다 ...

그럼 그 모든 개념 사이의 링크는 무엇입니까? 어느 쪽이 다른 쪽을 정의합니까?

주로 나는 ABI와 혼동하고 있다고 생각합니다. 호출 규칙에서 무엇을 넣을까요?

감사

답변

2

이 여전히 포인터를 당신에게 제공하기 위해 광대 한 주제 :

된 ABI (Application Binary Interface) 응용 프로그램이 특정 시스템에서 작업 할 수 있도록 지정 될 필요가 세부 사항을 포함 (일반적으로 운영 체제 사용). 따라서, 실시 예에 도착 :

  • 데이터 유형 크기를 (예를 들어 C 표준 유형 단지 최소한의 요구 사항을 제공 INT 타입 적어도 짧은만큼 크고, 짧은 16 비트이어야한다.).
  • 구조 및 비트 필드의 메모리
  • 레이아웃
  • 호출 규약 (그것은 파라미터를이다 찾을 수있는 함수가 호출 될 때 어떤 레지스터에있는 스택 등)에 그것이 유용한 스택에 존재하는 어떤
  • 스택 프레임 (디버거 용)
  • 시스템 호출 번호
  • 다른

기본적으로 다른 구성 요소 (라이브러리, OS가)는 ABI에 포함시킬 수와 함께 실행되는 프로그램을 구축하기 위해 알려질 필요가있는 세부 사항. 일부 ABI는 더 많이 지정하고 일부는 세부 사항을 덜 지정합니다.

하드웨어 아키텍처는 사양으로 볼 수도 있지만 더 낮은 수준 (소프트웨어가 아닌 하드웨어)입니다. 하드웨어 아키텍처는 사용 가능한 명령어 세트, 메모리 계층 및 주변 장치에 액세스하는 방법 등을 지정합니다. 하나의 하드웨어 아키텍처에 대해 서로 다른 ABI가있을 수 있습니다. 또한 여러 하드웨어 아키텍처 (일반적으로 비슷한 하드웨어 아키텍처)에 대해 동일한 ABI를 사용할 수 있습니다.