joker546645

5_3 asm

Dec 7th, 2017
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .686
  2. .XMM  ; zezwolenie na asemblację rozkazów grupy SSE
  3. .model flat
  4. public _dodaj_SSE
  5.  
  6. .code
  7. _dodaj_SSE PROC
  8. push  ebp
  9. mov   ebp, esp
  10. push  ebx
  11. push  esi
  12. push  edi
  13. mov   esi, [ebp+8]    ; adres pierwszej tablicy
  14. mov   edi, [ebp+12]   ; adres drugiej tablicy
  15. mov   ebx, [ebp+16]   ; adres tablicy wynikowej
  16. ; ładowanie do rejestru xmm5 czterech liczb zmiennoprzecin-
  17. ; kowych 32-bitowych -liczby zostają pobrane z tablicy,
  18. ; której adres poczatkowy podany jest w rejestrze ESI
  19. ; interpretacja mnemonika "movups" :
  20. ; mov -operacja przesłania,
  21. ; u -unaligned (adres obszaru nie jest podzielny przez 16),
  22. ; p -packed (do rejestru ładowane są od razu cztery liczby),
  23. ; s -short (inaczej float, liczby zmienoprzecinkowe; 32-bitowe)
  24. movups   xmm5, [esi]
  25. movups   xmm6, [edi]
  26. ; sumowanie czterech liczb zmiennoprzecinkowych zawartych
  27. ; w rejestrach xmm5 i xmm6
  28. paddsb    xmm5, xmm6
  29. ; zapisanie wyniku sumowania w tablicy w pamięci
  30. movups   [ebx], xmm5
  31. pop   edi
  32. pop   esi
  33. pop   ebx
  34. pop   ebp
  35. ret
  36. _dodaj_SSE ENDP
  37. END
Add Comment
Please, Sign In to add comment