x86で単一のメモリセルをゼロに設定する最速の方法は何ですか? 通常、私が行う方法は次のとおりです。
C745D800000000 MOV [ebp-28], 0
ご覧のとおり、定数に 4 バイトすべてを使用しているため、これはかなり分厚いエンコードになっています。MVZE
よりコンパクトですがMVZE
、メモリでは機能しない単純なレジスタを使用できます。
MOV
レジスタをクリアしてから、レジスタ値をメモリにクリアすることを考えていました。次に、2 つの命令になりますが、上記の 1 つの 7 バイト命令ではなく、合計 5 バイトしかありません。「短いほど、通常は速い」というルールに従うと、これが望ましい場合があります。