私はこれらすべての用語と混同しています:
ABI、呼び出し規約、およびハードウェア アーキテクチャ。
ABI はアーキテクチャとリンクしています。x86-64 には、i386 とは異なる ABI があります。ただし、独自の呼び出し規約 cdecl を定義することもできます...
では、これらすべての概念の間のリンクは何ですか? どちらが他のものを定義していますか?
ほとんどの場合、私は ABI と混同していると思います。呼び出し規約の一部の中に何を入れますか?
ありがとう
私はこれらすべての用語と混同しています:
ABI、呼び出し規約、およびハードウェア アーキテクチャ。
ABI はアーキテクチャとリンクしています。x86-64 には、i386 とは異なる ABI があります。ただし、独自の呼び出し規約 cdecl を定義することもできます...
では、これらすべての概念の間のリンクは何ですか? どちらが他のものを定義していますか?
ほとんどの場合、私は ABI と混同していると思います。呼び出し規約の一部の中に何を入れますか?
ありがとう
これは、いくつかの指針を提供するための広大なトピックです。
ABI (アプリケーション バイナリ インターフェイス) は、アプリケーションが特定のシステム (通常はオペレーティング システム) で動作できるようにするために指定する必要がある詳細をカバーしています。したがって、例を取得するには:
基本的に、他のコンポーネント (ライブラリ、OS) と一緒に実行されるプログラムを構築するために知る必要がある詳細は、ABI に含めることができます。詳細を指定する ABI もあれば、詳細を指定しない ABI もあります。
ハードウェア アーキテクチャも仕様と見なすことができますが、さらに低いレベルです (ソフトウェアではなくハードウェアに関するものです)。ハードウェア アーキテクチャは、使用可能な命令セット、メモリ階層、周辺機器へのアクセス方法などを指定します。1 つのハードウェア アーキテクチャに対して、異なる ABI が存在する場合があります。また、複数の (ただし通常は類似した) ハードウェア アーキテクチャに対して同じ ABI を使用することもできます。