汇编串操作指令std 和 cld

CLD与STD是用来操作方向标志位DF(Direction Flag)。CLD使DF复位,即DF=0,STD使DF置位,即DF=1.用于串操作指令中。


例如:
  
MOVS ( MOVe String) 串传送指令
      MOVSB //字节串传送 DF=0, SI = SI + 1 , DI = DI + 1 ;DF = 1 , SI = SI - 1 , DI = DI - 1 
          MOVSW //字串传送 DF=0, SI = SI + 2 , DI = DI + 2 ;DF = 1 , SI = SI - 2 , DI = DI - 2 
    
      执行操作:[DI] = [SI] ,将位于DS段的由SI所指出的存储单元的字节或字传送到位于ES段的由DI 所指出的存储单元,再修改SI和DI, 从而指向下一个元素. 
        
      在执行该指令之前,必须预置SI和DI的初值,用STD或CLD设置DF值.
      
      1.目的串必须在附加段中,即必须是ES:[DI]
      2.源串允许使用段跨越前缀来修饰,但偏移地址必须是[SI])

你可能感兴趣的:(汇编指令)