私が理解していないことの 1 つは、Intel CPU 用にコンパイルされたコードが AMD CPU でどのように機能するかということです。
私の基本的な理解は、たとえばCコードをコンパイルすると、コンパイラはソースコードを特定のプロセッサ用の命令を持つ機械語に変換するということです。そのため、アプリケーションで使用するプラットフォームに合わせてコンパイラでコンパイルする必要があります。AMD 対 Intel 用のコンパイラが必要で、特定のプロセッサ用のソフトウェアを購入する必要がないのはなぜですか?
私は、AMD プロセッサと Intel プロセッサが古い x86 命令である程度の互換性を共有していることを知っています。私が知りたいのは、彼らがそれをどのように行うのかということです? つまり、AMD や Intel がお互いに電話をかけ合って企業秘密を話し合っているわけではないのに、どうすれば互換性のある命令セットを作成できるのでしょうか?
すべての互換性はまだ 386 命令セットに基づいており、「IF AMD CPU なら、これを ELSE IF INTEL なら」などのステートメントがたくさんありますか?