こんばんわ。 興味ある話題なので、初めて投稿させて頂きます。 私は主に工業用計測機器の制御プログラムを作ってきた40歳の元プログラマです。 今は趣味の範囲でH8を遊んでいます。 かつてコンパイラは高価なもので、その反面生成するコードは冗長であり、私が 与えられた仕事にはとても使えるものではありませんでした。 なので、演算パッケージから組込用OS(または単なるメインルーチン)まで全部 自作しました。その為、最初の頃は、一つの仕事が終わるたびにドキュメントの 作成に追われていました。しかし、同じCPUで同じ演算精度の処理で済むなら、 過去の資産が使えるわけで、仕事を重ねれば重ねるほど、資産が増え、プログラ ム作成時間もドキュメント作成時間も短縮できました。 現在は組込向けCPUの速度も上がり、更にコンパイラも安価で、しかも最適化も 問題ないところまでできるようになりました。 しかしPC用のコンパイラと比べ、組込用CPUのコンパイラは方言が多く、リリー スごとによっても異なる点があったり、場合によってはANSI準拠も怪しいものが あり、これが思わぬバグを呼び、困窮することも多かったです。もちろん、何回 も同じ環境で仕事を重ねていけば、これらの差異も吸収できますが、一発ものの 場合は大変でした。 私にとってCPUごとに異なるアーキテクチャーを理解するより、このコンパイラ の差を理解する方が大変でした。これは私の頭が堅いだけかもしれませんがね。 ですので、発注側の特別の指定がなかったり、CPUがPCコンパチでない場合は、 ほとんどアセンブラで書いてきました。 で、以前新人を相手にして感じたのが、当たり前といえば当たり前なのですが、 みんなPC上のプログラムしか組めません。バイナリーの四則演算のアルゴリズム も知らないのが当然のようでした。 なので、当時私は新人教育の一環として必ずZ80をターゲットとした4バイト精 度の四則演算を行うプログラムをアセンブラで作らせました。このプログラムが きちんと組めるようになれば、他への応用はいくらでもできると思ったからです。 また、これができるようになるとC言語上でのビット演算も無駄なく書けるよう になりました。 ということで、Isseiさんの問いかけへの直接の回答とはなっておりません が、受注側の一人として、感じたことを書かせて頂きました。 マタギ