0.なぜいまさらアセンブラなのか

 以下に僕なりの理由を述べます
1、SSE2命令をアセンブラで直接書きたい
2、64ビット環境では、いまんとこインラインアセンブラが書けない
3、単なる学習(趣味?)

1、SSE2命令をアセンブラで直接書きたい

 C/C++でプログラムを組む場合、コンパイラが結構な最適化を行ってくれるので、よほどのことがないとアセンブラを直接書く必要はないかもしれません。
 しかしSSE2命令で浮動小数点計算を行う場合、一つ一つの演算は最適化の中で充分なのですが、例えば大きな配列の各要素について浮動小数点演算を行う場合、よりSSE2命令を効率よく計算する場合などは、アセンブラを直接書いたほうが速くなるのではないか(幻想かもしれませんが)、そう思うのです。

2、64ビット環境では、いまんとこインラインアセンブラが書けない

 様々なオンライン情報によると(また自分の経験上からも)、VisualStudio2017、2019では(でも?)64ビット環境では、インラインアセンブラが書けないようです。
 これは今後、書けるようになるかもしれません。インラインアセンブラは大変便利な機能で、C/C++のソース中にいきなりアセンブラを書けるのです。
 しかし、64ビット環境ではコンパイラに怒られます。
 この便利さに慣れてしまって、膨大な量のインラインアセンブラを書いてきた方は、64ビット版の移植がさぞや大変だろうと思います。
 でこの際インラインアセンブラを使わずに、アセンブラの関数を作って呼び出すようにしておけば、今後、128ビット環境などになっても、移植は少なくて済むのでは、と思ったのです。

3、単なる学習(趣味?)

 これが一番大きな理由かもしれません。とにかくアセンブラでコードを書きたい!、そう思ってしまったのです。
 僕は、仕事はプログラマで、プログラミングを教える仕事もしています。でも、やっぱり自分の興味のあるプログラムも書いてみたいのです(朝から晩まで書いていて、よく飽きないなあ、と我ながら思います)


 そんなわけで、興味のある方は、サンプルを試し、以降を読んでみてください。
2019年秋 山ノ井 靖