Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .intel_syntax noprefix
  2.  
  3. .text
  4.  
  5. .global amemmove
  6.  
  7. amemmove:
  8.     push    ebp
  9.     push    esi
  10.     push    edi
  11.     mov ebp,esp
  12.     mov edi, DWORD PTR [ebp+8]      # edi = *dest
  13.     mov esi, DWORD PTR [ebp+12]     # esi = *src
  14.     mov ecx, WORD [ebp+16]      # ecx = nbytes
  15.     mov eax, esi
  16.     sub eax, ecx            # eax = src - nbytes
  17.     cmp edi, eax
  18.     jl  rightcpy
  19.     mov edx, esi
  20.     add edx, ecx            # edx = src + btytes
  21.     cmp eax, edx
  22.     jg  rightcpy
  23.     jmp leftcpy
  24.  
  25. leftcpy:
  26.     std
  27.  
  28. rightcpy:
  29. rep movsb
  30.     cld
  31.     mov esp, ebp
  32.     pop edi
  33.     pop esi
  34.     pop ebp
  35.     ret
  36.  
  37. .end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement