一般有專門的字符操作指令,如:
lodsb
stosb
movsb
rep/repz/repnz
cmpsb
scasb等等,
這些指令其實速度很慢,好的方法是用寄存器間接尋址,如:
lodsb mov al,byte ptr [esi]
inc esi
stosb mov byte ptr [edi],al
inc edi
等等,千萬不要在程序中使用rep movsb,這樣做速度很慢的。
例:一個字符串復制函數
lstrcpyn proc uses esi edi ecx,src,des,ilen
mov ecx,ilen ;要復制的長度
mov esi,src
mov edi,des
@@:
mov al,byte ptr [esi]
inc esi
mov byte ptr [edi],al
cmp al,0 ;終止符
jz @F
loopnz @B
@@:
ret
lstrcpyn endp