すべての高級言語プログラムは、コンパイラによってアセンブリ言語に変換され、アセンブラによって機械語コードに変換されます。
また、特定のプロセッサには特定のアセンブリ言語が 1 つあるため、さまざまな種類の高水準言語コードはすべて、最終的にその特定のアセンブリ言語コードに変換されます。
シングルプロセッサコンピュータには単一のアセンブラがありますか?
すべての高級言語プログラムは、コンパイラによってアセンブリ言語に変換され、アセンブラによって機械語コードに変換されます。
また、特定のプロセッサには特定のアセンブリ言語が 1 つあるため、さまざまな種類の高水準言語コードはすべて、最終的にその特定のアセンブリ言語コードに変換されます。
シングルプロセッサコンピュータには単一のアセンブラがありますか?
すべての高級言語プログラムは、コンパイラによってアセンブリ言語に変換され、アセンブラによって機械語コードに変換されます。
これは必ずしも正しいとは限りません。高級言語からマシンコード (つまり、バイナリ表現) に直接移行することは完全に可能で実用的です。別のアプリケーションを呼び出す必要はありません。
特定のプロセッサ用の単一の特定のアセンブリ言語があるため
これは正しくありません。特定のプロセッサには単一の命令セットがありますが、それぞれ独自の構文を持つ複数のアセンブラー アプリケーションが存在する場合があります (例: http://en.wikipedia.org/wiki/X86_assembly_language#Syntaxを参照)。
同じ命令セット アーキテクチャを持つプロセッサはすべて同じ言語を話し、同じアセンブラのコードを理解します。
つまり、シングル プロセッサ コンピューター、マルチコア コンピューター、または地球上のすべての x86 コンピューターに対して 1 つのアセンブラーが存在します。(もちろん、選択できるアセンブラは多数あるかもしれませんが、それらはすべて同じバイナリ プログラム形式に変換されます。)
アセンブラは、コンパイラの最終段階の 1 つにすぎません。
シングルプロセッサコンピュータには単一のアセンブラがありますか?
アセンブラは、インストールまたは削除できる単なるソフトウェアです。ネイティブ バイナリが配布されるソフトウェア開発を除いて、必須ではありません。
通常、コンパイラはアセンブラにコンパイルされますが、必ずしもそうとは限りません。マシンコード(tcc)に直接アクセスするものもあれば、仮想マシンが最後の1マイルに到達する必要があるバイトコード(python、java)にアクセスするものもあります。
アセンブラが1つしかない場合もありますが、通常は複数から多数のアセンブラがあります。各アセンブラには、既存のアセンブラを使用するのではなく、作成された理由があります。アセンブリ言語に変更がある場合もあります(gnuはターゲットにガスを実装するときにアセンブリ言語を台無しにするのが好きです)、場合によっては、ディレクティブ、必ずしも機械語ではないもの、または出力形式、オブジェクトと準備完了の違いがありますバイナリなどを実行します。
通常、プロセッサの発明者/ベンダーはアセンブリ言語を発明し、製品を売り込むために、多くの場合、アセンブラ、場合によってはコンパイラを作成するか、少なくとも既存のリターゲット可能なものに変更を加えます。充電が多すぎる場合もあれば、無料で提供する場合もあります。無料または有料のコンパイラベンダーとオープンソースの世界は、それでも独自のことを行うことを選択できます。
ただし、一般的な分母はアセンブリ言語ではなく機械語であり、プロセッサが理解する機械語は明確に定義されており、プログラムがどの元の言語で記述されているかは関係ありません。