プログラミングの0と1の言語を機械語というんですか? ではアセンブリ言語はどういうのをいうんでしょうか?

プログラミング | パソコン389閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

1

1人がナイス!しています

ありがとうございます 言葉の定義を確実にしたいのですが アセンブリ言語は16進数で表す言語の事を言うんですか? では0と1だけの言語を何言語と呼ぶんでしょうか?

その他の回答(9件)

1

コンピュータは0と1で動いているということです。 これを2進数といいます。 一般人が使うのは10進数です。 9+1=10ですよね つまり、漢字には十という表現がありますが、通常は十は2桁で表記します。 2進数は1+1=10と表記します。 つまり、0はオフ、1はオンになります。 電子機器はスイッチをON/OFFすることは簡単です。 ですから、コンピュータでもこのON/OFFで機能するようにしてあるのです。仕組みが簡単になるからです。 プログラムもデータもすべてON/OFFで表します。 コンピュータは機械語で動いているわけですが、機械語は0と1なのです。 プログラミング言語はいろいろありますが、それはコンパイルされて最終的には機械語になります。コンピュータはプログラミング言語をそのまま理解して動くのはなくて、機械語で動きます。 プログラミング言語には、高級な言語と低級な言語があります。 低級な言語はしょぼいとか能力が低いという意味ではありません。 人間がプログラミングするときに開発しにくいので大変という意味です。 高級な言語になると、人間の言葉に近いので、開発し易いわけです。 アセンブリ言語はこの低級な言語になり、より機械語に近いわけです。 ですから、ほぼそのコンピューターの性能を引き出すことができます。 ただし、今は生産性が低いので、アプリを開発するときには、アセンブリ言語で開発することはほぼありません。 コンピュータ入門の教科書なら詳しく説明したら20ページぐらいかかる質問ですね、 最低限、アセンブリ言語、機械語で調べてみましたか それをやらないと理解は深まりません。

1人がナイス!しています

1

厳密にいうと電子回路のANDゲートとかのことだから 0と1というのは、物理的に電荷の有無を意味する 電圧のHigh/Lowで通電させるような仕組みを組み合わせて 通電させる組み合わせで、次の回路、次の回路へ…と 動作が続いていくように作られている 動作を決める信号列は8bit単位で記録・保存されていて この信号列のことを、 機械が直接動作する形態=機械語といっているだけ 全てのプログラミング言語は 最終的にこの機械語を作るためにある アセンブリはCPUが認識する命令信号に名前を付けて おおむねCPUの動作の仕方通りに記述するため ほとんどそのままダイレクトに機械語に置き換えています

1人がナイス!しています

1

実例が理解し易いと思います。矢印の上がアセンブリ言語の記述で、下が機械語の2進数表示です(値は適当です)。 TASU____ADDA____GR0,100______; レジスター0に100を足す ________________↓___________________________________ ________0110 1100 0000 1001__________________________ アセンブリ言語には左からラベル、オペコード、オぺランド、コメントがあり、文字のため人間に解り易いです。 機械語は数字(2進数や16進数)の羅列のため機械に解り易く、人間に解りにくいものです。

1人がナイス!しています

2

コンピューターの回路は電圧の2値を扱う回路で出来ているので、便宜的に0と1を使う2進数で表現しています、従って、機械語は2進数で出来ていますが、2進数は桁数が多いので2進数4桁を1桁で表せる16進数で表現する場合が多いです。どちらにしても、数値の羅列では人間には理解が難しいので、簡単な英単語で機械語を表現出来るようにした物をアセンブリ言語と言います。

2人がナイス!しています

1

>>実際は16進数で書きます。 >私この辺で用語の定義がこんがらがってます >0と1だけなのが機械語(マシン語)じゃないんでしょうか? 300を、”3と0と0”と言わないのと同じで ”さんびゃく”と言うのと同じ(?)です ”1010”と指令するより、”A”と指令するほうが早いです 101011110001と指令したければ”AF1”と指令すればいいのです 0と1だけで指令すると面倒なので4桁を束ねて ”0000~1111”までは”0~F”として まとめて指令します(これは暗記物です) >プログラミングの変態に昇華した人は、 >16進の羅列みただけで何してるかわかります。 私のことですね、機械語読めます AXレジスタに5を代入したければ”B80500”と指令します これが実際の機械語です 適当に書いたのではなく、本当にB80500です 101110000000010100000000と指令すると大変なので ”B80500”と、4桁ずつでまとめて指令します >アセンブリ言語はどういうのをいうんでしょうか? MOV AX,5 これがアセンブリ言語です これをアセンブルすると”B80500”に変換されます そしてコンピュータはこれを見て 101110000000010100000000として解釈して実行されます

1人がナイス!しています