ASM は通常、ほとんどの人にとってかなり難しいと考えられています。しかし、それは論理的に単純明快であり、応用数学のバックグラウンドを持つ人が問題を抱えているとは思いません.
アセンブリでは、プロセッサがどのように機能するかを理解する必要があります。なぜなら、asm をコーディングするときは、最終的に最も基本的な方法でプロセッサを操作することになるからです。
このことを考慮:
if (val)goto next;
次の限り、何かに変換されます。
mov eax, [val]
cmp eax, 0
je next
本質的に、アセンブリでは、プログラムがプロセッサを使用してタスクを実行する方法を理解する必要があります。EG: レジスタ (eax など) の必要性と使用方法。
一般に、C よりも asm の方が処理に時間がかかります。詳細については、わかりません。
最新の命令セットの中には、新しい数学演算を提供するものがありますが、それはあなたの求めるものかもしれませんし、そうでないかもしれません。マルチスレッドなどはオペレーティング システムの役割であり、プロセッサとは関係ありません。したがって、アセンブリには何も関係ありません (これは厳密には当てはまりません。ハードウェア マルチタスクは存在しますが、めったに使用されませんが、余談です)。
通常、最適化に多くの時間を費やす小さな反復的なコードを作成しない限り、最適化された C/C++ よりも ASM を作成してもパフォーマンスはほとんど向上しません。