作業中のソースには、3 つまたは 4 つのアセンブラー ルーチン (約 20 MB のソース) があります。それらはすべてSSE(2)であり、(かなり大きい - 2400x2048 以上と考えてください) 画像の操作に関連しています。
趣味でコンパイラをやっていますが、そこにはアセンブラがあります。ランタイム ライブラリは非常に多くの場合、それらでいっぱいです。それらのほとんどは、通常の手続き体制に反するもの (例外のヘルパーなど) に関係しています。
マイクロコントローラー用のアセンブラーがありません。最近のほとんどのマイクロコントローラーには、非常に多くの周辺ハードウェア (割り込み制御カウンター、さらには直交エンコーダーやシリアル ビルディング ブロック全体) が含まれているため、アセンブラーを使用してループを最適化する必要がなくなることがよくあります。現在のフラッシュの価格では、同じことがコード メモリにも当てはまります。また、多くの場合、ピン互換性のあるデバイスの範囲があるため、CPU 電力またはフラッシュ スペースが体系的に不足している場合のアップスケーリングは、多くの場合問題になりません。
実際に 100000 個のデバイスを出荷しない限り、プログラミング アセンブラを使用すると、フラッシュ チップを 1 カテゴリ小さくするだけで大幅な節約が可能になります。しかし、私はその範疇ではありません。
多くの人は、組み込みはアセンブラの言い訳だと考えていますが、彼らのコントローラはUnixが開発されたマシンよりも多くの CPU パワーを持っています。(Microchip には 40 および 60 MIPSのマイクロコントローラーが付属しており、10米ドル未満で提供されています)。
しかし、マイクロチップのアーキテクチャを変更するのは簡単ではないため、多くの人がレガシーに固執しています。また、HLL コードはアーキテクチャに大きく依存します (ハードウェア周辺機器、レジスタを使用して I/O を制御するためなど)。そのため、プロジェクトをアセンブラーで維持し続ける正当な理由が時々あります (私は幸運にも、新しいアーキテクチャーをゼロからセットアップすることができました)。しかし、多くの場合、本当にアセンブラが必要だと自分をからかっています。
GOTO を使用できるかどうか尋ねたときの教授の答えは今でも気に入っています (ただし、これは ASSEMBLER と読むこともできます) 。 . 結果とともにエッセイを提出してください。
私はそれを低レベル機能の指針として使用しました。窮屈すぎて使用することはできませんが、適切に動機付けするようにしてください。正当化としての複雑な推論を避けるために、人為的な障壁 (エッセイなど) を 1 つまたは 2 つ投げることさえできます。