Advertisement
Guest User

Untitled

a guest
May 21st, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. SYSEXIT = 1
  2. EXIT_SUCCESS = 0
  3. SYSWRITE = 4
  4. STDOUT = 1
  5.  
  6. #x^2-3 przedzial 1 do 4
  7. #x^a-b przedzial k do l
  8.  
  9.  
  10.  
  11. .data
  12. a: .long 2
  13. b: .long 2
  14.  
  15. k: .long 0
  16. l: .long 1
  17. n: .long 9999 #ilosc przedzialow
  18.  
  19. format_f: .string "wynik: %f \n"
  20.  
  21. .bss
  22. .comm wynik, 4
  23. .comm y, 4
  24. .comm step, 4
  25. .comm x, 4
  26.  
  27. .text
  28.  
  29. .global main
  30.  
  31. .type f, @function
  32.  
  33. main:
  34.  
  35. # (l-k)/n
  36. fldz #zerowanie st(0)
  37. fst wynik #zapis z do wynik
  38. fild l #zaladowanie do st(0) l
  39. fisub k #odjecie k do st(0) l-k
  40. fild n #wczytanie n do st(0)
  41. fdivr %st(1), %st(0) #podzielenie st(1) przez st(0) (l-k)/n
  42. fstps step #zapis wyniku do step
  43. fild k #wczytanie poczatku przedzialu
  44.  
  45. fstp x #zapis poczatku przedzialu do x
  46.  
  47. xor %rdi, %rdi #zerowanie licznika
  48. mov n, %rdi #liosc przedzialow
  49. loop:
  50. dec %edi
  51. fld x #wczytanie x do st(0)
  52. fadd step #dodanie korku do st(0)
  53. fst x #zapis wyniku do x
  54.  
  55. call f
  56.  
  57. fmul step #pomnozenie wyniku funkcji przez step
  58.  
  59. fadd wynik #dodawnie wyniku funkcji do wyniku
  60. fstp wynik #zapis do wynik
  61.  
  62. cmp $0, %rdi #jezeli edi != 0
  63. jne loop
  64. jmp end
  65.  
  66. f:
  67. pushq %rbp #wskaznik na stos
  68. movq %rsp, %rbp
  69.  
  70. #fild x
  71. fmul %st(0) #podniesienie do kwadratu
  72. fisub b #odjecie b
  73.  
  74. movq %rbp, %rsp
  75. popq %rbp
  76.  
  77. ret
  78. end:
  79. fld wynik
  80. movsd wynik, %xmm0
  81. movl $format_f, %edi
  82. movl $1, %eax
  83. call printf
  84.  
  85. ret
  86.  
  87. mov $SYSEXIT, %eax
  88. mov $EXIT_SUCCESS, %ebx
  89. int $0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement