Loading article…
方向フラグは、文字列処理の方向を左から右か右から左かを制御するフラグであり、[1]すべてのx86互換CPUのFLAGSレジスタに格納されます。[2]これはビット番号10 です。
このフラグは、メモリ内のある場所から別の場所に複数バイトのデータがコピーされる方向 (「前方」または「後方」) を決定するために使用されます。方向は、主にメモリ内の元のデータの位置とターゲット データの位置が重複している場合に重要になります。
- 0 に設定されている場合 (方向フラグクリア命令
CLDを使用)、文字列は最下位アドレスから最上位アドレスの順に処理されることを意味します。このような命令モードは自動増分モードと呼ばれます。ソース インデックスと宛先インデックス(など)の両方MOVSが増加します。 - 1 に設定されている場合 (set-direction-flag 命令を使用
STD)、文字列は最高アドレスから最低アドレスの順に処理されます。これは自動デクリメントモードと呼ばれます。
参考文献
- ^ 3.8.1 キャリーおよび方向フラグ制御命令
- ^ MSDNの方向フラグ
