Advertisement
Guest User

Untitled

a guest
Jun 13th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. .section .text
  2.  
  3. .globl suma
  4. suma:
  5. # prolog - nowa ramka stosu
  6. push %ebp
  7. movl %esp, %ebp
  8. # laduj a do st(0)
  9. fldl 8(%ebp)
  10. #laduj b do st(0), w st(1) jest b
  11. fldl 16(%ebp)
  12. # dodaj st(0) + st(1) -> st(0)
  13. faddp
  14. # wynik w st(0)
  15. # przywracamy stos
  16. mov %ebp, %esp
  17. pop %ebp
  18. # powrot
  19. ret
  20.  
  21. .globl roznica
  22. roznica:
  23. push %ebp
  24. movl %esp, %ebp
  25. fldl 16(%ebp)
  26. fldl 8(%ebp)
  27. fsubp
  28. mov %ebp, %esp
  29. pop %ebp
  30. ret
  31.  
  32. .globl mnozenie
  33. mnozenie:
  34. push %ebp
  35. movl %esp, %ebp
  36. fldl 16(%ebp)
  37. fldl 8(%ebp)
  38. fmulp
  39. mov %ebp, %esp
  40. pop %ebp
  41. ret
  42.  
  43. .globl dzielenie
  44. dzielenie:
  45. push %ebp
  46. movl %esp, %ebp
  47. fldl 16(%ebp)
  48. fldl 8(%ebp)
  49. fdivp
  50. mov %ebp, %esp
  51. pop %ebp
  52. ret
  53.  
  54. .globl pierwiastek
  55. pierwiastek:
  56. push %ebp
  57. movl %esp, %ebp
  58. fldl 16(%ebp)
  59. fldl 8(%ebp)
  60. fdivp
  61. mov %ebp, %esp
  62. pop %ebp
  63. ret
  64.  
  65. .globl sinus
  66. sinus:
  67. push %ebp
  68. movl %esp, %ebp
  69. fldl 16(%ebp)
  70. fldl 8(%ebp)
  71. fdivp
  72. mov %ebp, %esp
  73. pop %ebp
  74. ret
  75.  
  76. ==========================================================================================
  77. ==========================================================================================
  78.  
  79. #include <stdio.h>
  80. #include <stdlib.h>
  81.  
  82. double suma(double a, double b);
  83. double roznica(double a, double b);
  84. double mnozenie(double a, double b);
  85. double dzielenie(double a, double b);
  86. double pierwiastek(double a);
  87. double sinus(double a);
  88.  
  89. double a = 4.0;
  90. double b = 1.1;
  91. double wynik_suma, wynik_roznica, wynik_mnozenie, wynik_dzielenie, wynik_pierwiastek, wynik_sinus;
  92.  
  93. int main() {
  94. printf("Start\n") ;
  95. wynik_suma = suma(b,a);
  96. wynik_roznica = roznica(a,b);
  97. wynik_mnozenie = mnozenie(a,b);
  98. wynik_dzielenie = dzielenie(a,b);
  99. wynik_pierwiastek = pierwiastek(a);
  100. wynik_sinus = sinus(a);
  101.  
  102.  
  103. printf(" %f + %f = %f\n",a,b,wynik_suma);
  104. printf(" %f - %f = %f\n",a,b,wynik_roznica);
  105. printf(" %f * %f = %f\n",a,b,wynik_mnozenie);
  106. printf(" %f / %f = %f\n",a,b,wynik_dzielenie);
  107. printf(" sqrt(%f) = %f\n",a,wynik_pierwiastek);
  108. printf(" sin(%f) = %f\n",a,wynik_sinus);
  109.  
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement