1. ホーム
  2. c

[解決済み】なぜアセンブリで書かれたプログラムが増えないのか?[クローズド]

2022-04-19 02:54:50

質問

アセンブリプログラミングは、C言語などの高級言語に比べて時間がかかり、プログラミングも難しいという意見が主流のようです。したがって、これらの理由と移植性が高いという理由から、高級言語で書くことを推奨または想定しているようです。

最近、私はx86アセンブリで書いているのですが、おそらくこれらの理由は、移植性を除けば、本当は正しくないのではと思い至りました。おそらく、アセンブリを上手に書くには、慣れと知識が必要なのでしょう。また、アセンブリでのプログラミングは、HLLでのプログラミングとはかなり異なることにも気づきました。おそらく、優秀で経験豊富なアセンブリプログラマーは、経験豊富なCプログラマーがCで書くのと同じように簡単に、素早くプログラムを書くことができるのでしょう。

おそらく、アセンブリプログラミングはHLLとは全く異なるため、異なる考え方、方法、やり方が必要で、慣れないうちは非常に厄介に感じ、そのためプログラムを書くのに悪評が立っているのでしょう。

もし移植性が問題でないなら、本当にCがNASMのような優れたアセンブラに勝るものはあるのでしょうか?

編集する 一応指摘しておきます。アセンブリで記述する場合、命令コードだけで記述する必要はないのです。マクロやプロシージャ、独自の規約を使って様々な抽象化を行うことで、プログラムをよりモジュール化し、保守性を高め、読みやすくすることができるのです。そこで、良いアセンブリの書き方を熟知しておくことが重要になる。

どのように解決するのか?

ASMは <強い 可読性が悪い そして メンテナンス性に欠ける は高水準の言語と比較して

また、多くの ASMの開発者が少ない C言語など、より一般的な言語と比べると

さらに、より高度な言語を使用し 新しいASM命令が利用可能になった (例えばSSE)、コンパイラを更新するだけで、古いコードも簡単に新しい命令を利用することができます。

次のCPUでレジスタの数が2倍になったら?

この質問の逆はこうなる。 コンパイラはどのような機能を提供するのか?

ASMの最適化ができるのか、したいのか、すべきなのか、疑問です。 gcc -O3 ができます。