どうやってするの:
アセンブリで「純粋に」できるかどうかはわかりませんが、アセンブリ関数を呼び出すCで「プロキシクラス」を作成し(そのように呼び出すことができます)、Cでアセンブラを記述した場合次に、アセンブラー コードをコンパイルするだけです。
nasm -felf64 -g -F dwarf assembly_function.asm
次に、以下を含む setup.py ファイルを使用します。
from distutils.core import setup, Extension
setup(name='assembly_include_name', version='1.0', ext_modules=[Extension('assembly_include_name', ['c_assembly_proxy.c'],extra_objects=["assembly_function.o"])])
やりたいことができるようになります。Python にアセンブリ コードをリンクするように指示するために、パラメータ「extra_objects」を Extension コンストラクタに追加する必要があることに注意してください。そうしないと、関数の名前が見つからないと言ってクラッシュします。
なぜあなたはそれをしますか:
コンパイラーが行う最適化に関係なく、SSE 命令 (SSE2、SSE3...) を使用したい場合。
拡張 API:
https://docs.python.org/2/extending/extending.html
disutils.core リファレンス:
https://docs.python.org/2/distutils/apiref.html?highlight=distutils.core#module-distutils.core