プロが教える店舗&オフィスのセキュリティ対策術

コンピュータは電圧の高い(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が直接解釈できるマシン語とは全く違う人間の都合に合わせた表現でコーディングし、後からマシン語に変換する仕組みのものです。 人間に読みやいコードをマシン語に変換するので、関係は一体一ではありません。 つまりコンパイルやインタープリットすると元の情報(ソースコード)は失われます。

で、① インタープリタとインタープリットとは何でしょうか?教えていただけないでしょうか?すみません。
② マクロアセンブラの場合はなぜマクロ命令が実行されないのでしょうか?教えていただけないでしょうか?すみません。
③ 実行ファイルがあれば、逆アセンブルで完全なアセンブリコードを復元出来ます。とはどういう事でしょうか?つまり、実行ファイルというのは、プログラマーが書いたソースコードのことでしょうか?教えていただけないでしょうか?すみません。

教えていただけないでしょうか?すみません。

教えて!goo グレード

A 回答 (1件)

いちいち「すみません」ってつければ許されると思ってるのかが鬱陶しい


すまないと思うくらいなら自力でなんとかしろよ

>① インタープリタとインタープリットとは何でしょうか?
コンパイルやアセンブルは
マシンコードを生成しますが、
これと異なり実行時に翻訳しながら行う仕組み。
当然実行速度は遅い。

>② マクロアセンブラの場合はなぜマクロ命令が実行されないのでしょうか?
シラネ

③ 実行ファイルがあれば、逆アセンブルで完全なアセンブリコードを
>復元出来ます。とはどういう事でしょうか?
マシン語があれば逆アセンブルは可能だけど「完全な」は無理。
途中にデータ列が置かれてれば誤解する。
書いたやつが説明不足。

>つまり、実行ファイルというのは、
>プログラマーが書いたソースコードのことでしょうか?
違う
    • good
    • 0
この回答へのお礼

実行ファイルとは何なのでしょうか?教えていただけないでしょうか?すみません。

お礼日時:2021/06/06 08:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

このカテゴリの人気Q&Aランキング