daily pastebin goal
81%
SHARE
TWEET

Untitled

a guest May 16th, 2018 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .bss
  2. # zmienne
  3. .comm prec, 8
  4. .comm begin, 4
  5. .comm end, 4
  6. .comm suma, 4
  7. .comm _dx, 4
  8.  
  9. .comm x, 4
  10.  
  11. .comm xp, 4
  12. .comm i, 4
  13. .comm dx, 4
  14.  
  15. .comm result, 4
  16.  
  17. .data
  18.  
  19. two: .long 2
  20. cztery: .long 4
  21.  
  22. .moj:
  23. .string "wynik calkowania %f \n"
  24.  
  25. .text
  26. .global calka
  27.  
  28. .type calka, @function
  29.  
  30. calka:
  31. pushq %rbp
  32. movq %rsp, %rbp
  33.  
  34. #################################################
  35. # Do funkcji sa przekazywane 3 parametry        #
  36. # Pierwszy arg to dokladnosc w %rsi             #
  37. # Drugi to poczatek przedzialu calkowania %xmm0 #
  38. # Trzeci to koniec przedzialu calkowania %xmm1  #
  39. #################################################
  40.  
  41. #################################################
  42. # Pierwszym krokiem algorytmu jest wyznaczenie  #
  43. # szerokosci prostokata dx:                     #
  44. # dx = (xk - xp)/n                              #
  45. #################################################
  46.  
  47.      
  48.          movq   %rdi, prec  #pobranie precyzji
  49.          movss %xmm0, begin      #pobranie dolnej granicy
  50.          movss %xmm1, end        #pobranie gornej granicy
  51.  
  52.         flds end        #xk
  53.         fsub begin      #(xk - xp)
  54.         fidiv prec      #((xk - xp)/n
  55.  
  56.         fstps _dx       #pobranie wyliczonego przedzialu
  57.  
  58.     movss x1, %xmm0
  59.     movss %xmm0, begin
  60.  
  61.     fldz    #zero do st(0) tutaj przechowuje sume wszystkich wysokosci
  62.  
  63.         PETLA:
  64.                 movss begin, %xmm0      #pierwszy argument dla make_x
  65.                                 #drugi argument jest w %rdi
  66.                 movss _dx, %xmm1        #trzeci argument
  67.  
  68.        
  69.         movq %rdi, prec    
  70.         movss %xmm0, xp
  71.         movss %xmm1, dx
  72.  
  73.         fild prec       # i// Convert the integer operand (signed)
  74.                 # into extended-real and load it onto the floating-point stack.
  75.         fmul dx # i*dx
  76.         fadd xp # xp + i*dx
  77.  
  78.         fstps result
  79.         movss result, %xmm0     #pobranie wyniku               
  80.  
  81.                 #w %xmm0 jest jest obliczony x dla ktorego policzymy teraz f(x)
  82.  
  83.         movss %xmm0, x  # pobranie wartosci do zmiennej x
  84.         flds x
  85.         fmul x
  86.  
  87.         fisub two      #odejmuje 2.0
  88.         fstp result    #pobranie wyniku
  89.  
  90.                 fadd result     # w result trzymam wynik f(x) (wysokosc prostokata)
  91.                         #dodanie to do pozostalych wczesniej obliczonych
  92.                     #(na szczyt stosu wysokosci prostokata)
  93.      
  94.  
  95.                 dec %rdi        #dekrementuje licznik
  96.                 cmp $0, %rdi    #jesli 0 to konczymy prace
  97.                 je END
  98.                 jmp PETLA
  99.  
  100.         END:    # wynik = _dx(czyli szerekosc)*(f(x1)+f(x2)+f(x3)...f(xn)) (w st(0) jest wysokosc)
  101.                
  102.         fmul _dx
  103.                 fstps result    #wynik calkowania
  104.  
  105.         #WYWOLANIE PRINTFA
  106.  
  107.                 movss result, %xmm0
  108.         cvtss2sd %xmm0, %xmm0
  109.         mov $.moj, %edi
  110.         mov $1,%eax
  111.         call printf
  112.  
  113.         #####################
  114.         #przekazuje wynik calkowania do xmm0 aby zwrocic wynik do C
  115.         #movss result, %xmm0
  116.  
  117.                 movq %rbp, %rsp
  118.                 popq %rbp
  119.                 ret
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top