• ベストアンサー

マシン語について

まったくの素人がこのカテゴリーで質問するのも どうかなと思ったのですがお許し下さい。 コンピューターが理解できるのはマシン語なんですよね。 このマシン語っていうのは世界共通ですか? 例えて言えばAという処理をする場合どんなプログラミング言語で 書いてもひとつのマシン語にいきつくということなのかという事 なんですが・・・。もうひとついえば炊飯器だろうがNASAの ロケットだろうがコンピューターが理解してるのは同じマシン語 なのかということなんですが 言ってる事わかりますでしょうか? わけわからなかったら無視してください。すみません。 変な質問?ですみません。

質問者が選んだベストアンサー

  • ベストアンサー
  • vaio09
  • ベストアンサー率37% (756/2018)
回答No.2

同じマシン語ではありません。 総じてアセンブラ(アセンブリ言語)と呼ばれるものです。 今の方々はご存じないかもしれませんね。 「人間には理解しづらいが、機械にはとっても理解しやすい言語」と言えます。 BASICとかC言語とか、英単語に近いので、人間が理解するのはたやすいのですが、これを機械に処理させるときは、いったん「人間語から機械語に翻訳する」という作業が入ります。そのため、実行速度が(相対的に)とっても遅くなるのです。 アセンブラなら、最初から機械が理解しやすい構造で書かれていますので、処理速度がとても速いです。 大昔に8ビットマイコンの組み立てを行った経験のある方の多くは、アセンブラを勉強したものです。(それ以外なかったので) 今ではコンピュータの処理速度の進化がめざましいため、高級言語で組んでもマクロ的には大差ないのでしょうね。 CPUが16ビット、32ビット、64ビットと進化していったため、ほぼ絶滅したようです。 尚、このアセンブラ言語は、方言がたくさんあって、あまり汎用性は高くありません。8ビットのころは、メーカー毎にハード仕様が異なっていました。なのでソフトであるアセンブラにも全く互換性がありません。NECと富士通とIBMでは、全く互換性が無かったのです。 だからこそ、メーカー毎に個性があり、コアなユーザーも生まれました。 私大昔にインテルやモトローラのアセンブラ(やニーモニックと呼ばれる数字の羅列)を覚えましたけど、今でも処理系の設計には、当時の勉強が役に立ってますよ。だから、機会が有れば勉強されても良いでしょう。

b-mamoru
質問者

お礼

マシン語にもいろいろあるんですね。 アセンブラは聞いたことがあります。 こういうのでプログラムを組めればすごいですよね。 ありがとうございました。

その他の回答 (2)

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.3

マシン語は、CPUによって異なります。 しかし全てのCPUで互換性がないと困るので、より上位のCPUは下位のCPUの命令も含んでいる場合が殆どです。この「命令群が共通のCPU」を「ファミリ」「シリーズ」などと呼んでひとくくりにします。 例えば、Windowsが動作するのは「Intel x86」命令をサポートしたIntel社のPentium, Celeron, Core2Duo等がファミリ扱いされます。 あるいは別会社であるAMDが作ったAthron64, Opteron, Sempron等も含まれます。(あまり「ファミリ」とは言わず、「互換CPU」と言われますが) 他にも、ARM系、SH系、Power系(XBOX360やPS3のCELL(の一部))など、同じ命令セットをサポートするCPUがあります。 まあ、世界中で別々の民族が、それぞれ独自の言語で会話している様子をCPUの当てはめれば、だいたい似たような物かと。

b-mamoru
質問者

お礼

いろいろあるんですね。 いまだに私にとっては不思議な世界です。 プログラムを組める人ってほんと尊敬します。 ありがとうございました。

noname#69788
noname#69788
回答No.1

>このマシン語っていうのは世界共通ですか? 機種やCPUに依存します。世界共通の言語を使いたいのであれば、JAVAを使ってください。

b-mamoru
質問者

お礼

どうもありがとうございました。

関連するQ&A