質問: アセンブリ言語について。 コンピュータは電圧の高い(h)と低い(l)を2進数としてcpuがクロック信号の入力を受けて処理します。 2進数はそのままだと扱いづらいので、数値的に親和性のある2のn乗進数を使います。 一般にコンピュータは1オクテットを1バイト、1ワードとしています。 その時16進数2桁で1バイトとなることから16進数表記が使われています。 なので、極論で言えば16進数2桁ではなく256進数1桁でも良かったという事です。 実は、大抵のアセンブリ言語は2進数表記を扱えます(8進数も使えるかも)。 アセンブラは16進数でも2進数でもそのまま対応するマシン語に置き換えていくものです。 アセンブリ言語とマシン語は一体一で対応しているので、実行ファイルがあれば、逆アセンブルで完全なアセンブリコードを復元出来ます。 マクロアセンブラの場合はマクロ命令までは再現されませんが、ここでは関係無いので割愛します。 つまり、マシン語とアセンブリ言語は本質的に全く同じものです。 単に、人間に読みやすく見せているものアセンブリ言語です。 マシン語もアセンブリ言語も低水準言語です。 高水準言語とは、c言語などのコンパイルを必要とするものや、basicやjavascriptのようにインタープリタを必要とするもののことです。 こちらは、cpuが直接解釈できるマシン語とは全く違う人間の都合に合わせた表現でコーディングし、後からマシン語に変換する仕組みのものです。 人間に読みやいコードをマシン語に変換するので、関係は一体一ではありません。 つまりコンパイルやインタープリットすると元の情報(ソースコード)は失われます。 で、1 インタープリタとインタープリットとは何でしょうか?教えていただけないでしょうか?すみません。 2 マクロアセンブラの場合はなぜマクロ命令が実行されないのでしょうか?教えていただけないでしょうか?すみません。 3 実行ファイルがあれば、逆アセンブルで完全なアセンブリコードを復元出来ます。とはどういう事でしょうか?つまり、実行ファイルというのは、プログラマーが書いたソースコードのことでしょうか?教えていただけないでしょうか?すみません。 教えていただけないでしょうか?すみません。
回答: マクロアセンブラの場合は、逆アセンブルでマクロ命令までは再現されないと言う事で、マクロアセンブラで生成された実行ファイルは、マクロ命令をちゃんと正常に実行します/実行できます。