Pentiumを介した8086/8088のすべてのタイミングとサイズがあるように見える命令タイミングのリストをすばやくグーグルで検索し8086 instructions timings size
ました。
ただし、これには、特に 8088 で非常に重大なコード フェッチ メモリのボトルネックが含まれていない可能性があることに注意してください。これにより、通常、コード サイズの最適化がより適切な選択になります。詳細については、こちらを参照してください。
「8086/8088 User's Manual: Programmer's and Hardware Reference」など、同様の情報が記載された公式の Intel ドキュメントがウェブ上で見つかることは間違いありません。
特定の質問について、以下の表は、後者が優れていることを示す比較を示しています(サイクルが少なく、スペースが同じ):
指示 |
クロックサイクル |
バイト |
xor axe、ax in axax |
3 3 --- 6 |
2 1 --- 3 |
ムーヴアックス、1 |
4 |
3 |
しかし、あなたはこの男についてあなたの教育機関と話したいと思うかもしれません. そのような単純なことに対する 10% のペナルティは、かなり厳しいように思えます。1 つは速く、もう 1 つは短いという2 つの可能性がある場合、どうすればよいかを尋ねる必要があります。
次に、達成しようとしていることに応じてコードを最適化するさまざまな方法があることを彼らが認めたら、あなたがしようとしているのは読みやすさと保守性を最適化することであり、真剣に気にすることはできないと伝えます.あちこちの無駄なサイクルまたはバイトについて(1) .
最適化は、コードの一部がほぼ完全な状態になった後、パフォーマンスの問題が発生した場合に一般的に行うものです。コードがまだ重要な変更の可能性にさらされている場合、ほとんどの場合、無駄な労力になります。
価値があるのは、クロックサイクルとサイズの点でsub ax,ax
同等に見えるxor ax,ax
ので、次回はそれをミックスに投入して、彼にもう少し仕事をさせることができるかもしれません.
(1)いいえ、実際にはそんなことはしませんが、たまに吐き出すのは楽しいです :-)