Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
55
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.     mov ebp,esp
  10.     mov edi, BYTE PTR [ebp+8]       // edi = *dest
  11.     mov esi, BYTE PTR [ebp+12]      // esi = *src
  12.     mov ecx, WORD [ebp+16]          // ecx = nbytes
  13.     mov eax, [edi]                  // eax = dest
  14.     mov edx, [esi] - ecx            // edx = src - nbtytes
  15.     cmp eax, edx
  16.     jl  rightcpy
  17.     mov edx, [esi] + ecx            // edx = src + btytes
  18.     cmp eax, edx
  19.     jg  rightcpy
  20.     jmp leftcpy
  21.  
  22. rightcpy:
  23. rep movsb
  24.     jmp fim
  25.  
  26.  
  27. leftcpy:
  28.     pushf
  29.     std
  30. rep movsb
  31.     popf
  32.  
  33. fim:
  34.     mov esp, ebp
  35.     pop ebp
  36.     ret
  37.  
  38. .end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement