ども、名人です。
今日の東京、朝型には本降りに近い雨が降っていましたが、現在は、上がってます。
今日は、降ったり止んだりを繰り返すのかもしれないですね。
さて、今日は、先日のトイコンピュータについたコメントに返信してみたいと思います。
そのコメントと言うのは
-------------
16進数は・・・・
高橋名人さん、Basicは、確かに、機種によって、ちがいましたが、マシン語っていうやつは、Z80Aとかが、SG1000とか、
MSXで、つかわれていましたが、エミュレータでなくて、おんなじソフトがでていたのですが、共通言語ではなかったのでしょうか???????はい
-------------
というコメントでした。
まずマシン語というのは、機械語とも書き、BASICやCと違ってCPUが直接認識出来る言語になります。
今から30〜40年前のパソコンでは、BASICが基本言語として採用されていましたが、そのプログラムを実行する為には、プログラムの1行を読み込んで、それをマシン語に変換してからCPUが実行するという一連の作業を行う必要がありました。
ゆえに、「プログラムの読み込み&翻訳」に時間が掛かるため、その動作も遅くなってしまうのですが、これが、CPUが直接認識出来るマシン語であれば、翻訳という部分が一切必要無いために、動作が遅くなる事はありません。
パソコンのプログラムでも、ゲームによっては、一部マシン語を使う事で、速度を維持するテクニックが活用されたのです。
しかし、このマシン語は、0からFまでの16進数しか使わないので、例えば、
「AD 02 10 18 6D 03 10 8D 02 10…」
という様な、数字の羅列にしか見えないので、なかなか覚える事が難しい言語でもあります。
まぁ、プログラマーにとっては簡単かもしれませんが、元々がBASICしか覚えていない、営業や宣伝の担当である私には、ちんぷんかんぷんでした。
そして、コメントへの回答になりますが、CPUが全く同じであれば、同じ命令なのですから、マシン語も同じなのですが、そのCPUにどんなハード(ここではメモリーやグラフィックメモリーなど)が付いているかで、その命令のセットが変わってくるのです。
そんな部分は、CやBASICであれば、翻訳する段階で、それらに合わせたマシン語に変換してくれるのですが、直接マシン語を使うと、そのハードの違いに対応出来なかったりすると思います。
なので、基本的な部分は、共通ですが、ハードの構成が変われば、そこに対応するプログラムが必要になるので、マシン語で書かれたプログラムだから、同じCPUで動くというのは、ちょっと違うのです。(だと思います)
これが正しいのかどうかは、エセプログラマーの私には分かりませんが(汗
まぁ、たぶんこんな感じだと思います。
もし違っているのであれば、プログラマーの皆さん、わかり易い言葉で解説をお願いします。
では、今日も一日楽しみましょう!