我有两个变量,我需要将值从string1移动到string2。
string1 DB 20, 22 dup('?')
string2 DB 20, 22 dup('?')
我知道如何使用寄存器(si)和循环来完成此操作,例如:
LEA si, string1
LEA di, string2
mov cx, 5
change:
mov ax, [si]
mov [di], ax
loop change
我想知道是否有更短的方法。
答案 0 :(得分:1)
您正在寻找的是REP
(重复)和MOVSB
(* MOV * e * S * tring的助记符* 乙 * YTE)。
示例:
lea si,[string1] ;si points to string1
lea di,[string2] ;di points to string2
mov cx,5 ;number of bytes in string1
rep movsb ;copy the string
另见:
MOVSW (Move String Word - Copies 2 bytes at a time)
MOVSD (Move String DWord - Copies 4 bytees at a time)