←前ページへ :  INDEX :  次ページへ→


7-4.DFの設定

  何度も書いているように、ストリング命令はDFと密接に関係している。DFの設定が間違えば、違う領域をコピーしたりするため、容易に暴走したり、他のデータを破壊してしまうことも頻繁に起こる。

  例えば、下のプログラムのように、ある領域からある領域にデータをコピーする場合は「DF=0」である必要がある。

	cld

	  :
	  :
	mov	si,offset DATA1
	mov	di,offset DATA2
	mov	cx,di
	sub	cx,si
	rep	movsb
	  :
	  :
DATA1	db	"ここにはコピーもとのデータが入る"
DATA2	db	100 dup(0)
  このプログラムの1番上にある「CLD」がDF=0にする命令である。

CLD ( Clear Direction Flag ) :ディレクションフラグをクリア

CLD
   動作:DF=0
  影響を受けるフラグ:DF=0

STD ( Set Direction Flag ) :ディレクション フラグを設定

STD
   動作:DF=1
  影響を受けるフラグ:DF=1
  メモリーの上位から下位に転送や比較を行う場合は「DF=1」すなわち「STD」を行い、下位から上位に転送や比較を行う場合は「DF=0」すなわち「CLD」を行う。

←前ページへ :  INDEX :  次ページへ→