汇编语言笔记10

DF标志和串传送指令、pushf和popf

flag的第十位是DF,方向标志位,在串处理指令中,控制每次操作后si,di的自增或自减

  • DF=1,每次串处理指令操作后si,di递减
  • DF=0,每次串处理指令操作后si,di递增

汇编语法提供了设置DF值的指令:cld和std

  • cld:令DF=0
  • std:令DF=1

串传送指令

将ds:si指向的内存单元中的数据送入es:di中。

  1. movsb:一次传送一个字节(8位)
    • es X 16+di = ds X 16+si,先传送
    • si,di的值根据DF的值递增或递减(每次改变1)
  2. movsw,一次传送一个字(16位)
    • es X 16+di = ds X 16+si,先传送
    • si,di的值根据DF的值递增或递减(每次改变2)

REP指令

rep指令是根据cx的值,重复执行后面的串传送指令:

rep movsw;如果cx=8,则会执行8次

pushf和popf

  • pushf的功能是将标志寄存器的值压栈

  • popf的功能是从栈中弹出数据,送入标志寄存器中

  • pushf和popf为直接访问标志寄存器提供了一种方法