DF 标志位决定di、si 增减方向
mov es:[di],ds:[si]
df = 0 + +
inc di
inc si
df = 1 - -
dec di
dec si
movsb 与 movsw
movsb 传送一个字节
rep movsb
等价于
s: movsb
loop s
------------------
movsw 传送一个字
rep movsw
等价于
s: movsw
loop s
指令 cld 与 指令 std
8086CPU
cld df = 0 ++
std df = 1 --
编程
(1)将data段中的第一个字符串复制到它后面的空间中
data segment
db 'Welcom to masm!'
db 16 dup (0)
data ends
mov ax,data
mov ds,ax
mov si,0
mov es,ax
mov di,16
mov cx,16
cld
rep movsb
(2)将F000H段中的最后16个字符复制到data段中
data segment
db 16 dup (0)
data ends
F000H段最后一个内存单元地址是F0000:FFFFH
DATA段最后一个内存单元地址是DATA:000FH
mov ax,0f000H
mov ds,ax
mov si,0ffffH
mov ax,data
mov es,ax
mov di,15
mov cx,16
std
rep movsb