私はアセンブリ言語に不慣れで、次の質問が頭に浮かびました。コード、マクロ、またはプロシージャを構造化するためのより良いソリューションはどれですか? マクロに含まれるコードは必要なセクションにコピーされるだけで、コストのかかるジャンプなしでコードを実行できますが、プログラムの実行時にロードする必要がある余分な命令が追加されます。また、手順では、メモリにロードする必要があるコードが減りますが、cod のセクションから別のセクションに移動するためのコストのかかるジャンプも追加されます。どちらの方がよいですか?マクロまたはプロシージャ?
2 に答える
一般に、プロシージャを使用する必要があります。プロシージャは、コードの整理に役立ち、デバッグを容易にし、同じコードの重複を回避できます。マクロは、小さなタスクに共通の構文を作成してコードを読みやすくする場合に使用できます。
もちろん、パフォーマンスを本当に気にし、コードのサイズをまったく気にしない場合は、この一般的なアプローチを拡張して、もう少しマクロを使用することをお勧めします。
最後に、それぞれの特定のケースを検討する必要があります。しかし、私はマクロを使いすぎる前にコードを継承したと言えます。より多くのコードを複製しただけでなく、ソース コードを理解するのに長い時間がかかりました。なぜなら、それらのマクロ定義をすべて追跡し、それらが実際に何をしているかを把握しなければならなかったからです。
通常、プロシージャはマクロよりもコードを読みやすくしますが、ジャンプ コストがあることに注意してください。最も重要なヒントはこれです。コードの小さなチャンク (つまり、コード本体内で 1 つまたは 2 つのことを実行したいだけ) の場合、コードで実行していることはジャンプ/プロシージャー呼び出しのコストに見合わないため、マクロを使用します。ただし、大量のコードを書いている場合 (つまり、コード本体内で多くのことを行っている場合) は、ジャンプのコストが非常に小さいため、手順を使用したほうがよいでしょう。 .