\r\n\r\n
プログラミング言語は、人間がコンピュータにタスクを実行させるための命令を作成するためのものです。プログラミング言語には、高級プログラミング言語、アセンブリ言語、機械語などの3種類がある。高度なプログラミング言語は、人間にとって理解しやすいものです。コンピュータが認識する言語は、機械語と呼ばれる。アセンブリ言語は、高級言語と機械語の中間に位置する言語です。機械語とアセンブリ言語の主な違いは、機械語はコンピュータで直接実行され、アセンブリ言語はアセンブリプログラムを機械語コードまたはターゲットコードに変換してCPUで実行する必要があることである。
1. 概要と主な違い 2. 機械語とは 3. アセンブリ言語とは 4. 機械語とアセンブリ言語の類似点 5. 横並び比較 - 表形式による機械語とアセンブリ言語 6. まとめ
人間は高水準のプログラミング言語を理解することができます。高級言語でプログラミングするために、CPU内部に関する深い知識は必要ない。java、C++、C++、Pythonなどは、高レベルのプログラミング言語である。コンピュータは機械語は認識できても、高級言語は理解できない。そのため、これらのプログラムをコンピュータが理解できる機械語に変換する必要があります。この翻訳は、コンパイラやインタプリタを使って行われる。
図01:0と1の機械語。
機械語は0と1回の2進数で構成されています。コンピュータはデジタル電子機器ですから、演算にバイナリーを使います。1は真/オン状態、0は偽/オフ状態を示します。プログラムを高級言語から機械語に変換する方法は、CPUに依存します。
アセンブリ言語は、高級プログラミング言語と機械語の中間的な言語です。機械語の一歩上を行くものです。アセンブリ言語は、機械語よりは理解しやすいが、高級プログラミング言語よりは理解しにくい。この言語はハードウェアレベルに近いため、低レベル言語とも呼ばれる。アセンブリ言語で効果的なプログラムを書くためには、プログラマはコンピュータのアーキテクチャとレジスタ構造を十分に理解する必要があります。アセンブリ言語の命令を機械語コードやターゲットコードに変換するには、アセンブラと呼ばれる特殊なコンパイラが使用されます。
アセンブリ言語の文には4つの部分があります。それらは、ラベル、ヘルパー、オペランド、コメントである。ラベルやコメントは任意です。指令の引数は、実行するヘルパー文字です。マクロは、アセンブリ言語でもサポートされています。マクロは、名前を持つ命令の集合体として定義することができます。プログラム内の他の場所で使用することができます。
ここでは、アセンブリ言語文の例を紹介します。
MOV SUM, 50-この命令は、値50を変数SUMにコピーします。
ADD VALUE1,20 - これは変数VALUE1に20を追加するものです。
ADD AH, BH - AH レジスタの内容を BH レジスタにコピーする命令です。
INC COUNT-変数のカウントを1つ増やします。
とvalue1100 - これは変数VALUE1と100で実行される合計演算です。
MOV AL, 20-値20をALレジスタにコピーします。
図02:アセンブリ言語で書かれたプログラム
アセンブリ文の集合体がアセンブリプログラムです。このことから、アセンブリ言語は機械語より単純であることがわかる。構文は英語と似ている。アセンブリ言語には約30の命令がある。高級言語と比較して、必要なメモリ量や実行時間が最も少ないのが特徴です。
リアルタイムシステムでは、CPUが即座に行動を起こす必要がある事象が発生します。これらのイベントは、ISR(Interrupt Service Routines)と呼ばれる特別なサブルーチンです。ISRのプログラミングにはアセンブリ言語が便利です。
機械語、アセンブリ言語 | |
機械語は、CPUが直接命令を実行する最下層のプログラミング言語である。 | アセンブリ言語は低レベルのプログラミング言語であり、アセンブリプログラムをマシンコード/ターゲットコードに変換する必要があります。 |
わかりやすさ | |
機械語はコンピュータにしか理解できない。 | アセンブリ言語は、人間が理解できるものです。 |
文法 | |
機械語は2進数で構成されています。 | アセンブリ言語は、英語と同様の構文に従います。 |
加盟国 | |
機械語はプラットフォームによって異なる。 | アセンブリ言語は、標準的な命令のセットで構成されています。 |
アプリケーション | |
機械語とはマシンコードのことです。 | アセンブリ言語は、マイクロプロセッサを使用したリアルタイムシステムで使用されます。 |
機械語とアセンブリ言語の違いは、機械語はコンピュータが直接実行するのに対し、アセンブリ言語は低レベルのプログラミング言語で、アセンブリプログラムをターゲットコードまたはマシンコードに変換する必要があることです。アセンブリ言語は、機械語の一歩先を行く言語です。アセンブリ言語は、マイコンを使ったシステムのプログラミングに最適な言語です。この言語は、CPUの仕組みやコンピュータの内部構成についても理解することができます。
本記事のPDF版をダウンロードし、オフラインで使用する場合は、引用の指示に従ってください。PDF版のダウンロードはこちら 機械語とアセンブリ言語の違い