質問: アセンブリよりもcを使用する利点と欠点は何ですか? 私は現在、電気通信および電子工学の工学を勉強しており、マイクロプロセッサープログラミングでアセンブラーからcに移行しました。これは良い考えだと思います。アセンブリと比較して、cの利点と欠点は何ですか?私が見る長所/短所は次のとおりです。利点: cの構文は、アセンブラーの構文よりもはるかに学習しやすいと言えます。 cは、より複雑なプログラムを作成するために使用する方が簡単です。 cの学習は、アセンブラの学習よりも生産性がいくらか高いので、cの周りにはアセンブラよりも開発が進んでいます。 欠点: アセンブラはcよりも低いレベルのプログラミング言語であるため、ハードウェアに直接プログラミングするのに適しています。 メモリ、割り込み、マイクロレジスタなどで作業することを示唆するはるかに柔軟性があります。
回答: アセンブリの場合、コードの保守性とパフォーマンスの間には避けられない妥協点があります。読みやすく保守しやすいアセンブリを記述したり、高度に最適化されたコードを記述したりできます。しかし、両方を行うことはできません。cの場合、妥協点は完全に消えるわけではありませんが、それほど目立たなくなります。適度に最適化された、読みやすく保守しやすいcを作成できます。優れたアセンブリ言語プログラマは、ほとんどいつでもコンパイラを打ち負かすことができますが、ほとんどの場合、代わりに意図的に読みやすく保守しやすいコードを書くことを選択します。したがって、優れたアセンブリ言語プログラマは、ほとんどの場合コンパイラに打ち負かされます。スマートな方法は、アセンブリとcの両方を使用することです(アセンブリのみまたはcのみの代わりに)。優れたアセンブリ言語プログラマが保守性のある/遅いコードを書くことを選択したであろうコードの部分にはcを使用し、残りの部分にはassemblyを使用します(「高度に最適化され、保守が難しい」が実際に正当化される場合)。