DF标志和串发送指令
Flag的第10位是DF,方向标志位。在串处理指令中,控制每次操作后si、di的增减。
df=0,每次操作后si、di递增。
df=1,每次操作后si、di递减。
串发送指令格式:movsb
功能:执行movsb指令相当于进行下面几步操作
1.((es)*16+(di))=((ds)*16+(si))
2. 如果df=0则: (si)=(si)+1
~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ (di)=(di)+1
3. 如果df=1则: (si)=(si)-1
~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ (di)=(di)-1
可以看出movsb的功能是将di:si指向的内存单元中的字节送入es:di中,然后根据标志寄存器df位的值,将si和di递增或递减。
格式:movsw
movsw的功能是将di:si指向的内存字单元中的姿送入es:di中,然后根据标志寄存器df位的值,将si和di递减2或递增2。
movsb和movsw进行的是串发松操作中的一个步骤,一般来说,movsb和movsw都和rep配合使用,格式如下:
rep movsb或rep movsw
用汇编语法来描述rep movsb的功能就是:
s: movsb
loop s