シンパチです。

私がプログラミングを始めたころのアセンブラの主流は、8ピットCPUのZ80でした。

アセンブラというのは、マシンが理解できる言語のマシン語と人間の言葉に近いコンパイラ言語との中間的な言語です。

つまり、コンパイラをアセンブラに翻訳し、アセンブラがマシン語に翻訳し、CPUがそのマシン語通りに実行し、プログラムが動作するわけです。

現在のCPUは64ビットが主流です。

天と地との差があります。

動作スピードだけでなく、要領も天地の差がありました。

なので、いろんなことを工夫する必要がありました。

特に8ビットのアセンブラでは、足し算、引き算はありますが、掛け算、割り算はありません。

なので、足し算、引き算を組み合わせて作る必要がありました。

反対にコンピュータ特有の機能シフトという機能がありました。

どういう機能かというと、987654を右シフトすると 98765 9876 987 と桁を落としていく感じです。

反対に123を左シフトはというと 1230 12300 123000と言う風になる形です。

実際は、2進数でのシフトですので、上記のような結果にはなります。

掛け算、割り算の話に戻りますが、足し算を組み合わせて掛け算は10倍以上の処理がかかったと記憶しています。

割り算に至っては100倍くらいかかったような気がします。

なので、例えば3である数を割りたいという場合、どうするかというと

1/3 * 100をかけて、2回右シフトするというような形で処理速度を大幅に下げるなどの工夫を行っていました。

もちろん、2進数ですので、上記通りのやり方ではありませんでしたが、そのような対応をしていました。

仕事仲間とどうやって処理速度を稼ぐかをお互い競い合っていたことを思い出しました。