アセンブリ言語
アセンブリ言語は、特定の種類のプロセッサ向けに設計された低水準のプログラミング言語です。高水準プログラミング言語(C/C++など)のソースコードをコンパイルして生成できますが、最初から記述することもできます。アセンブリコードは、アセンブラーを使ってマシンコードに変換できます。
ほとんどのコンパイラーはソースコードを直接マシンコードに変換するため、ソフトウェア開発者はアセンブリ言語を使わずにプログラムを作成することがよくあります。ただし、場合によっては、プログラムを細かく調整するためにアセンブリコードを使用できます。たとえば、プログラマーは、特定のプロセスができるだけ効率的に動作するように、アセンブリ言語でそのプロセスを記述することがあります。
アセンブリ言語はプロセッサアーキテクチャによって異なりますが、似たような命令や演算子が含まれていることがよくあります。以下は、x86プロセッサでサポートされる命令の例です。
- MOV - ある場所から別の場所へデータを移動する
- ADD - 2つの値を加算する
- SUB - ある値から別の値を減算する
- PUSH - データをスタックにプッシュする
- POP - スタックからデータをポップする
- JMP - 別の場所へジャンプする
- INT - プロセスを中断する
次のアセンブリ言語を使うと、3と4の数値を加算できます。
mov eax, 3 - 3をレジスター「eax」に読み込む
mov ebx, 4 - 4をレジスター「ebx」に読み込む
add eax, ebx, ecx - 「eax」と「ebx」を加算し、結果(7)を「ecx」に格納する
アセンブリ言語の記述は、各操作を非常に基本的なレベルで実行する必要があるため、面倒な作業です。コンピュータープログラムの作成にアセンブリコードを使う必要はないかもしれませんが、プロセッサの動作方法について有用な理解が得られるため、アセンブリ言語の学習はコンピューターサイエンスのカリキュラムの一部になっていることがよくあります。
知識をテストする