Intel Architecture プログラミング 新しいページはコチラ
提供: yonewiki
(→プログラムの例) |
(→プログラムの例) |
||
42行: | 42行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | 11行目からmovdqaが使われています。第一オペランドのxmm0レジスタに第二オペランドのint配列srcからまとめて格納転送されます。後ろのオペランドから、前のオペランドにデータが転送されている感じです。C++言語側で確保した配列との連携をする場合この操作で、間違いが起こらないようにするには配列が連続していることが重要になりますので、__declspec(align(16)) | + | 11行目からmovdqaが使われています。第一オペランドのxmm0レジスタに第二オペランドのint配列srcからまとめて格納転送されます。後ろのオペランドから、前のオペランドにデータが転送されている感じです。C++言語側で確保した配列との連携をする場合この操作で、間違いが起こらないようにするには配列が連続していることが重要になりますので、__declspec(align(16))という宣言をしました。16としたところには2の階乗になっていれば、その分だけ連続して配置するように働きます。アライメントといいます。タイヤのアライメントしか知らない人や半導体プロセスのLithography工程や重ね合わせ検査工程のアライメントとかしか知らない人もいるかもしれませんが、位置出しという日本語がちょうどいい感じのニュアンスに変換できると思います。 |
54行: | 54行: | ||
− | + | こういった命令セットを説明していくと広辞苑くらいの情報量が必要になってきます。現にIntelのアーキテクチャー説明資料もPDFで何千ページというボリュームになっています。よく使いそうなものを、ここでは紹介していくかもしれません。それでも、きっと書き終わったころには定年を向かていることでしょう。 |