Content #
movsb 和 movsw 指令执行时,
- 原始数据串的段地址由DS 指定,偏移地址由SI 指定,简写为DS:SI;
- 要传送到的目的地址由ES:DI 指定;
- 传送的字节数(movsb)或者字数(movsw)由CX指定。
- 还要指定是正向传送还是反向传送。
正向传送:
- 指传送操作的方向是从低地址端到高地址端;
- 每传送一个字节(movsb)或者一个字(movsw),SI 和DI 加1 或者加2;
反向传送:
- 反向传送方向是从高地址端到低地址端。
- 每传送一个字节(movsb)或者一个字(movsw)时,SI 和DI 减去 1 或者减去2。
不管是正向传送还是反向传送,也不管每次传送的是字节还是字,每传送一次,CX 的内容自动减一。
方向标志DF(Direction Flag):通过将这一位清零或者置1,就能控制movsb 和movsw 的传送方向。方向标志清零指令cld是个无操作数指令,与其相反的是置方向标志指令std。 cld 指令将DF 标志清零,以指示传送是正方向的。 std 指令,它将DF标志置位 1。此时,传送的方向是从高地址到低地址。