1

コードを書くとき、コンパイラやアセンブラはABI(アプリケーションバイナリインターフェイス)に従います。

ただし、ISAは、開発に利用できるさまざまなマイクロアーキテクチャ間で異なり、データ処理のレイヤーを提供し、ベアマシン操作の一部を抽象化しますか、それとも最終的なアプローチが異なりますか?

異なるマイクロプロセッサはそれぞれ異なるISAを持つことができ、ABIはISAに固有であるため、これら3つのことは非常に混乱します。その場合は、マイクロプロセッサごとのISAを正確に把握し、ABI、ISA、マイクロレベルの詳細に一致するもののみを使用する必要があります。

それは私だけですか、それとも他の人を混乱させませんか?ウィキペディアも記事にはあまり意味がないので、誰かがこれの背後にある考えをもう少しまっすぐにするのを手伝うことができますか?

4

2 に答える 2

0

They're not entirely dependent, but not entirely exclusive.

Let's take x86 for example. One aspect of the ABI is the __cdecl calling convention. This states that the caller pushes arguments onto the stack, in right-to-left order. It states that the caller is responsible for cleaning those arguments off the stack after the call. This is applicable to all x86 microarchitectures.

A difference between x86 instruction sets would be the presence of SSE instructions. Whether or not these instructions exist has no impact on how arguments are pushed onto the stack.

于 2013-01-30T22:41:01.117 に答える