アセンブリ言語とは
アセンブリ言語は、特定のコンピューターアーキテクチャに固有の低レベル言語です。 比較すると、多くの高水準プログラミング言語は複数のアーキテクチャで使用できますが、プロセッサに到達する前に解釈またはコンパイルが必要です。
アセンブリ言語の分解
アセンブリ言語は、大部分が高レベルのプログラミング言語に置き換えられています。 ソフトウェアエンジニアは、IntelプロセッサまたはAMDプロセッサを搭載しているかどうかに関係なく、すべてのPCで動作する単一のアプリケーションを、高水準言語を使用して作成します。 それに比べて、アセンブリ言語を使用して、コンピュータアーキテクチャの種類ごとに個別のアプリケーションを作成する必要があります。 これらのアプリケーションは、更新するたびにいくつかの異なるアプリケーションを更新する必要があるため、保守が非常に難しくなります。
コンピュータで実行される最も基本的な命令は、1と0で構成されるバイナリコードです。これらは、プロセッサを通過する電気のオンおよびオフ状態に直接変換できるためです。 もちろん、ソフトウェアエンジニア(またはすべての人間)が情報を1と0に変換することは実用的ではないため、プロセスを簡素化するためにアセンブリ言語が開発されました。 これらのアセンブリ言語には、さまざまなアーキテクチャ間でコードを変換する作業が依然として多く含まれていたため、その後に高度なプログラミング言語が登場しました。
とは言っても、アセンブリ言語は、高速性とパフォーマンスを要求する特定の市場ではまだ一般的です。 フライトシミュレータは、高度な言語が機能しない高度に特殊化されたアーキテクチャを使用する場合があります。つまり、アセンブリ言語が必要になる場合があります。 高頻度の取引では、アセンブリ言語を使用することもあります。これは、高レベルの言語よりもはるかに迅速に分析とトランザクションを実行できるため、競合に比べて取引収益と収益性が向上するためです。
アセンブリ言語の例
アセンブリ言語は、プロセッサ、メモリ、その他のコンピューターコンポーネントに指示を送ります。 これらの指示は、1と0のみで構成されるバイナリコードのやや抽象的なバージョンです。 たとえば、コード10110000 01100001は、8ビット値をレジスタに移動するようにプロセッサに指示します。 16進形式を使用すると、これらの命令をB0 61に短縮できます。 アセンブリ言語は、 MOV AL、61hのような演算子を導入することで、これをさらに理解しやすくします。MOVは「move」の略語です。
高レベルのプログラミング言語はこれらのタスクを自動的に処理することが多く、ソフトウェアエンジニアは変数の割り当てやそれらの操作の完了など、はるかに高いレベルのタスクに集中できます。 たとえば、ソフトウェアエンジニアがlet myVariable = 123を使用してJavaScriptで変数を定義すると、整数123のサイズやその他の要因に基づいて、その変数にメモリ内の場所が自動的に割り当てられます。 ソフトウェアエンジニアは、メモリの管理について心配する必要はなく、代わりに変数の動作に集中できます。