、私はしばしばこのように、その文字列操作命令が方向フラグ(DF)の状態に関係なく使用されている参照:デフォルト状態は分解で
or ecx, 0FFFFFFFFh
xor eax, eax
mov edi, ebp
repne scasb
関数が始まるので、
CLD
またはSTD
命令が見つかりません。DFフラグに影響する可能性のある命令もありません。
コンパイラは、プログラムの起動以来、このフラグの定義済みの状態を想定しています。ローダーが好きで、プログラムの実行中は変更されません。
リセット時に、方向フラグがクリアされます。それを変更する前に 'DF'を保存し、後でそれを復元することは礼儀正しいと考えられます。 –
呼び出し規約/ ABIは 'DF'の状態を指定しており、コンパイラはそれに依存しています。 – Jester