アセンブリ言語高度言語
1693 ワード
アセンブリ:assembler assembler
高度な言語:high-level language
コンパイラ:compiler
コンパイラでもアセンブリでも、最終的に生成されるのはマシンコードです.
アセンブリ言語
アセンブリは、アセンブリ言語をマシンコードにコンパイルしたマシンコードを生成します.
アセンブリ言語の各コマンドは、一般に、CPUによって識別される、マシンコードのうち、マシンコマンドに対応しています.
高度な言語
コンパイラは、高度な言語をマシンコードにコンパイルします.
ほとんどの高級言語、例えばC、C++、Javaなどの命令、すなわち高級言語が書いた文は、機械言語と一つ一つ対応していない関係であり、一般的には、1つの高級言語の文やいくつかの文からなるコードセグメントは、複数の機械コードに対応している.
ハードウェア抽象層
ハードウェア抽象層は、上位ソフトウェアのプログラミングを容易にするために、下位ハードウェアの詳細を抽象的に隠す技術です.
アセンブリ言語では、ハードウェア抽象層の概念は一般的に存在しない.それは、その文自体がハードウェア命令に近いため、ハードウェアを直接操作するために使用される.
コンパイラによってコンパイルされた高度な言語は、ハードウェア抽象層に大きく関与します.
アセンブリの利点と劣勢
アセンブリ言語自体と命令は基本的に一対一に対応する関係にあるため,アセンブリコードをアセンブリでコンパイルして生成する実行可能コード(命令)の効率は,高度な言語でコンパイルされて最終的にコンパイルされて生成される実行可能コードの効率よりもはるかに高い.
したがって、プログラムの性能を最も重要な考慮とする場合、例えば画像処理において、あるいはハードウェアリソースが限られている場合、コード実行がより効率的で、リソースの占有がより少ない効果を実現するためにアセンブリ言語を用いる傾向がある.
アセンブリ言語の劣勢は、使いにくい、学びにくい、使いにくいことです.
コンパイラのメリットとデメリット
ほとんどの場合、この点の小さな性能の向上の面での優位性は、難学的で使いにくい面での劣勢を補償するのに十分ではありません.この場合、
C、C++、Javaなどの高度な言語が使われることが多い.高度な言語は、使いやすく、より複雑な上位論理などを記述するのに使いやすい.
アセンブリ言語vs高度言語
( CPU ) (C/C++/Java/…)
学習と使用の難易度が相対的に容易ではないことと機械命令の一つ一つの対応度が基本的に一つの高級言語に一つ一つ対応することは往々にして複数の機械命令コードの実行効率が極めて高く、相対的にアセンブリにとって低いことに対応する.