ども、名人です。

 

今日の東京、朝型には本降りに近い雨が降っていましたが、現在は、上がってます。

今日は、降ったり止んだりを繰り返すのかもしれないですね。

 

 

さて、今日は、先日のトイコンピュータについたコメントに返信してみたいと思います。

 

そのコメントと言うのは

 

-------------

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で動くというのは、ちょっと違うのです。(だと思います)

 

 

これが正しいのかどうかは、エセプログラマーの私には分かりませんが(汗

まぁ、たぶんこんな感じだと思います。

もし違っているのであれば、プログラマーの皆さん、わかり易い言葉で解説をお願いします。

 

 

 

 

 

では、今日も一日楽しみましょう!