1.定义变量
;申请一块栈内存
sub esp,20
;初始化一段字符串
mov byte ptr[ebp-22],31h
mov byte ptr[ebp-21],32h
mov byte ptr[ebp-20],33h
mov byte ptr[ebp-19],34h
mov byte ptr[ebp-18],35h
mov byte ptr[ebp-17],36h
mov byte ptr[ebp-16],37h
mov byte ptr[ebp-15],38h
mov byte ptr[ebp-14],39h
mov byte ptr[ebp-13],0
2.调用函数
;压入参数
push 10
;lea eax,text
lea eax,[ebp-22]
push eax
lea eax,[ebp-32]
push eax
;跳转函数
call memcpy
invoke printf,ADDR format3,ADDR byte ptr[ebp-32] ;调用printf函数
3.memcpy函数实现
memcpy:
push ebp
mov ebp,esp
mov eax,dword ptr[ebp+8]
mov ebx,dword ptr[ebp+12]
mov ecx,dword ptr[ebp+16]
jm2:
sub ecx,1
cmp ecx,0
;如果ecx小于0则跳转
jl jg1
mov dl,byte ptr[ebx]
mov byte ptr[eax],dl
add eax,1
add ebx,1
jmp jm2
jg1:
mov eax,dword ptr[ebp+8]
mov esp,ebp
pop ebp
ret